1

プログラム A(cmd.exe \C) (1 つの引数を取ります)

プログラム B: (1 つ以上の引数を取る)

C1,C2,C3, ... : 引数のリスト

A B C1 C2 C3コマンドプロンプトに入力すると、望ましい解釈 は

A (B (C1 C2 C3)) (C は B への引数、B は A への引数)

ただし、NOT AS A (B) (C1) (C2) (C3)(B、C1、C2、C3、.... は A の引数)

コマンドプロンプトでエスケープ/リダイレクト/パイプするにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

6

Microsoft のドキュメントによると|、パイプには演算子を使用できます。

そして、コマンドを次のように書き直す必要があります。

B C1 C2 C3 | A

お役に立てれば。


アップデート

質問を更新したので、次のようなことをしようとしていると思います:

cmd.exe /C B C1 C2 C3

で特殊文字をエスケープできます^

または、次のように文字列を引用してみてください。

cmd.exe /C "B C1 C2 C3"

更新 2

および引用符に問題がある場合cmd.exe /C(たとえば、B、C1、C2、C3 にスペースが含まれる)、コマンド全体を別の引用符で囲む必要があります。

cmd.exe /C ""B" "C1" "C2" "C3""

参考までに、 cmd.exe に関する Microsoft のドキュメントProcessing quotation marksセクションで:

/c または /k を指定すると、cmd は残りの文字列を処理し、次の条件がすべて満たされた場合にのみ引用符が保持されます。

  • /s は使用しません。
  • 引用符のセットを 1 つだけ使用します。
  • 引用符内に特殊文字を使用しないでください (例: &<>( ) @ ^ |)。
  • 引用符内に 1 つ以上の空白文字を使用します。
  • 引用符で囲まれた文字列は、実行可能ファイルの名前です。

前の条件が満たされない場合、string は最初の文字を調べて、それが開始引用符であるかどうかを確認することによって処理されます。最初の文字が開始引用符である場合は、終了引用符と共に削除されます。終了引用符に続くテキストは保持されます。

構文 : エスケープ文字、区切り文字、および引用符も読みたい場合があります。

「引用符」が必要なプログラム パスにスペースを含むバッチ スクリプトを起動するには

CMD /k ""c:\batch files\test.cmd" "Parameter 1 with space" "Parameter2 with space""

于 2013-01-30T07:53:19.300 に答える