をエスケープし、引用符を必要とします。引数は、常に私は、コマンドプロンプトで次のコマンドを実行した場合、それが動作
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/c ""C:\Program Files (x86)\AppFolder\do.exe""";
using (Process process = Process.Start(startInfo))
{
...
}
:
"C:\Program Files (x86)\AppFolder\do.exe"
私は、プロセスと同じことを実行しようとします
実行されていません。 startInfo.Argumentsを見ると、次のようになります。
/c \"C:\\Program Files (x86)\\AppFolder\\do.exe\"
私は何が欠けていますか?引用符やスペースのある引数を渡すことはできませんか?スペース/引用符で項目を渡している例がたくさんありますが、それに従うだけではうまくいきません。これは私が考えることができる最も狭い例です。
編集:私はそれが動作しますが、スペースや引用符を使用していないので、私はただのショートカットを作成する場合:
startInfo.Arguments = @"/c D:\_test\Do.lnk";
_実行されていません。どのように実行されていませんか?隠しウィンドウスタイルを削除し、 '/ c'オプションを'/k'オプションに変更してみてください。私はコンソールウィンドウにエラーメッセージが表示されるようになりました。 –