SHIFT = 引数(= %1など)の位置を1つずらす - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
次の時に指定された引数(= パラメーター)の位置を、1つ前にずらします。o バッチファイルを呼び出す時に、後ろに引数を付けて呼び出す
o ラベルを呼び出す時に、後ろに引数を付けて呼び出す
次のような時に使うと便利です。
o 10番目以降の引数を使用したい時。(= コマンドプロンプトは、%9 までしか記述出来ません。)
o 全ての引数を、同じ論理で処理したい時。
**** 書式
--------
shift [/数字]
--------
o コマンド名は、大文字小文字のどちらでも大丈夫です。
o /数字 = ずらしたい引数の先頭を、「/ + 番号」の形で指定します。(/0から/8まで)
+ 例えば、/2 を指定すると、%3 以降の引数の位置が、1つ前にずれます。
+ %3の値が %2に移動し、%4の値が %3に移動します。そして、%0 と %1の値は変化しません。
o オプションを指定しない時、全ての引数が1つずれます。%1の値が %0に移動します。
**** 使用例
o オプションを使用しない時の例
--------
call ミクさんに挨拶.bat ネギ ミクさん ネギ ネギ
--------
-------- ミクさんに挨拶.bat
@echo off
echo おはようございます。%2
shift
echo 改めて、おはようございます。%1
--------
o オプションを使用した時の例
--------
call ミクさんとルカ様に挨拶.bat ミクさん リンちゃん レン君 ルカ様
--------
-------- ミクさんとルカ様に挨拶.bat
@echo off
echo %1、%4。おはようございます。
SHIFT /2
SHIFT /2
echo %1、%2。改めて、おはようございます。
--------
**** 機能
o バッチファイルやラベル呼び出しの時に指定された引数の位置を 1つ前にずらします。
o 何も指定しない時、 %1の値は %0に移動します。以降の引数も同様です。
o /数字の形で指定すると、「その数字」番目の引数以降を、ずらす対象とします。
+ /2を指定すると、%3の値は %2に移動します。%4以降も同様です。
+ そして、%0 と %1の値はそのまま残ります。
**** メモ
o オプションで指定する数字は、最初の1文字を採用しているみたいです。
+ /9 を指定すると、エラーメッセージが出ました。
+ /10 を指定すると、/1 と同じ結果になりました。
**** 確認したバージョン
o Windows XP Service Pack 3
==
関連ページ:
▼Windowsコマンド。プログラム実行関連(▼ABC順)
▼Windowsコマンド一覧(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
> SORT = ファイルの内容やコマンド出力結果を並べ替えて表示する
変数 %0 = 実行中のバッチファイル名、もしくはCALLラベル名
変数 %1 = バッチファイルやCALL文の最初の引数
+
CALL = バッチファイルやラベルを呼び出す
GOTO = 指定したラベルに移動する