Windows コマンドのシェル変数 $@ に相当するものは何ですか?

Windows コマンドのシェル変数 $@ に相当するものは何ですか?

複数の引数の数は変化する可能性があるため、コマンド バッチ スクリプトに変数を配置したいと思います。シェルと同様に、$@ を使用します。いくつか試しましたが、何も機能しません。

[編集: %* が機能することはわかっていますが、実際には SHIFT 演算子を使用して最初の引数を削除し、残りを変数に割り当てる必要があります。ただし、SHIFT を実行して %* を確認すると、Unix シェルとは異なり、元の引数がすべて表示されます。]

現在、私は FOR ループを使用してこれを実行していますが、最初の引数を POP し、残りを別の変数に割り当てる他のコマンド/メソッドがあるかどうかを知りたいです。

例: SomeCommand「複数の引数」

答え1

%*バッチ ファイルでは、スクリプトに渡されるすべての引数 (スクリプト名自体は除く) が記述されたとおりに保持されます。

以下の情報も役に立つかもしれません:

%0- バッチファイルを呼び出すために使用されるコマンド(、、fooなど..\fooc:\bats\foo.bat
%1最初のコマンドラインパラメータであり、
%2は2番目のコマンドラインパラメータであり、
以下同様に続きます%9(そして シフト 9日以降もご利用いただけます。

見る 方法: コマンドライン引数 (パラメータ) を Windows バッチ ファイルに渡す

SHIFT次のコマンドの使用例:

batchfile.bat The Quick Brown
  • 以下のように表記されます: %0=The Quick Brown、%1=The、%2=Quick、%3=Brown。
  • SHIFT後: %0=クイックブラウン、%1=クイック、%2=ブラウン
  • 2回目のシフト後:%0=クイックブラウン、%1=ブラウン

「最初のパラメータ以外のすべて」という質問には、適切な答えはありません。バッチ言語は、すべての可能なパラメータに対して機能する方法としては十分に正確ではないため、SHIFT を使用するのが最善の方法です。

解決策についての議論は投稿でご覧いただけます。
バッチ ファイル内の最後の n 個のパラメータを示す方法はありますか?

関連情報