複数の引数の数は変化する可能性があるため、コマンド バッチ スクリプトに変数を配置したいと思います。シェルと同様に、$@ を使用します。いくつか試しましたが、何も機能しません。
[編集: %* が機能することはわかっていますが、実際には SHIFT 演算子を使用して最初の引数を削除し、残りを変数に割り当てる必要があります。ただし、SHIFT を実行して %* を確認すると、Unix シェルとは異なり、元の引数がすべて表示されます。]
現在、私は FOR ループを使用してこれを実行していますが、最初の引数を POP し、残りを別の変数に割り当てる他のコマンド/メソッドがあるかどうかを知りたいです。
例: SomeCommand「複数の引数」
答え1
%*
バッチ ファイルでは、スクリプトに渡されるすべての引数 (スクリプト名自体は除く) が記述されたとおりに保持されます。
以下の情報も役に立つかもしれません:
%0
- バッチファイルを呼び出すために使用されるコマンド(、、foo
など..\foo
)c:\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 個のパラメータを示す方法はありますか?