次のシナリオで必要性を表現できます。ネイティブコマンドとして実行される文字列を受け入れる関数を記述します。
それは、アイデアからそれほど遠くはなれていません。逐語的に実行するコマンドを提供する社内の他の場所からの他のコマンドラインユーティリティとインターフェイスしている場合。コマンドを制御しないため、有効なコマンドを入力として受け入れる必要があります。これらは私が簡単に克服することができなかった主なしゃっくりです:
コマンドは、スペースを含むパスにあるプログラムを実行する可能性があります。
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
コマンドには、スペースを含むパラメーターを含めることができます。
$command = 'echo "hello world!"';
コマンドにはシングルとダブルの両方のティックがあります:
$command = "echo `"it`'s`"";
これを達成するためのクリーンな方法はありますか?私は贅沢で醜い回避策を考案することしかできませんでしたが、スクリプト言語の場合、これは非常に単純なはずだと感じています。