2

いくつかのアプリケーションを実行したい次の引数のリストがあります。

 "C:\Release one" "My Manager" 321

私はそれらを所有物に入れるべきだと思いProcessStartInfo Argumentsます。

しかし、文字列にスペースが含まれているため、正しく記述するにはどうすればよいMy Manager"ですか?

4

6 に答える 6

5

試す:

process.StartInfo.Arguments = "\"My Manager\" 321";
于 2012-08-23T12:11:32.040 に答える
1

これを使って:

 System.Diagnostics.Process.Start("something.exe","arg_1"+"  "+"arg_2"+"  "+"arg_3"+"  ");
于 2012-08-23T12:07:18.493 に答える
0

そこに示すように、引用符で囲む必要があります。

したがって、コードは次のようになります

Process.Start("myexe.exe","\"My stuff\" "+myarg);
于 2012-08-23T12:09:15.630 に答える
0

" と \ をエスケープする

例:

Process p = new Process();
p.StartInfo.FileName = "C:\\Release one";
p.StartInfo.Arguments = "\"My Manager\" 321";
p.Start();
于 2012-08-23T12:11:30.737 に答える
0

試す...

"\"C:\\Release one\""
"\"My Manager\""
321

特定の状況でこれを試したことはありませんが、文字列の一部として二重引用符を含めるのが標準的な方法です。

于 2012-08-23T12:10:13.030 に答える
0

このメソッドを使用して、CorrectaArgumentvalue を取得しています

 public static string GetArgumentValue(string arg)
    {
        if (arg.Contains(" "))
            return string.Format("\"{0}\"", arg);
        return arg;
  }

例:

     process.StartInfo.Arguments = string.Format("{0} {1} {2}", GetArgumentValue(@"C:\Release one"), GetArgumentValue("My Manager"), 321);
于 2012-08-23T13:35:56.807 に答える