いくつかのアプリケーションを実行したい次の引数のリストがあります。
"C:\Release one" "My Manager" 321
私はそれらを所有物に入れるべきだと思いProcessStartInfo
Arguments
ます。
しかし、文字列にスペースが含まれているため、正しく記述するにはどうすればよいMy Manager"
ですか?
試す:
process.StartInfo.Arguments = "\"My Manager\" 321";
これを使って:
System.Diagnostics.Process.Start("something.exe","arg_1"+" "+"arg_2"+" "+"arg_3"+" ");
そこに示すように、引用符で囲む必要があります。
したがって、コードは次のようになります
Process.Start("myexe.exe","\"My stuff\" "+myarg);
" と \ をエスケープする
例:
Process p = new Process();
p.StartInfo.FileName = "C:\\Release one";
p.StartInfo.Arguments = "\"My Manager\" 321";
p.Start();
試す...
"\"C:\\Release one\""
"\"My Manager\""
321
特定の状況でこれを試したことはありませんが、文字列の一部として二重引用符を含めるのが標準的な方法です。
このメソッドを使用して、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);