String[] commands = {"Perl", "-e", "print \"hello world\""}
ProcessBuilder processBuild = new ProcessBuilder();
processBuild.command(commands);
をC#では、私は同じことを行う必要があるので、私は問題を抱えています事が、私は、個々の文字列として別途filename
とarguments
を記入する必要があります。今すぐ
processBuild.FileName = commands[0];
for (int x = 1; x < commands.Length; x++)
{
processBuild.Arguments += " " + commands[x];
}
私は、ユーザーが起動しようとしているように起こっているかわからないので、私はこれが合うように調整することができないことを意図しプログラム。私の上記の解決策の問題は、プロセスがperl -e print "hello world"
を実行しようとしていることです。なぜ私はこれをコマンドラインのように扱わなければならないのですか?
もちろん、 "cmd/c echo hello"のようなものがcmd /c "echo" "hello"
に変わったので、if !start with [-/] { Surround with quotes }
のようなことはできません。私はif/elsesの束を作り、それについて賢明にしようと思うが、もっと良い方法がなければならないだろうか?
だから私はあなたを助けてくれる人に頼ります。どのように私はC#で非cmdのラインファッションで引数を指定するプロセスを開始することができますか?
それでも、有効な引数文字列を作成する方法を知っている必要があります(引数のリストに解析することができます)。関連する引用の知識が必要ないように、最初に引数のリスト(Unixの 'execv'または' execvp')を提供するだけの方法はありません。 – jamessan