【Windows】バッチファイルの引数
コマンドラインでバッチファイルに渡された引数、ドラッグ&ドロップでバッチファイルに渡されたファイルは %0~%9 に展開される。
練習編
次のような内容のtest.batを作成する。
@echo off echo コマンド本体: %0 echo 引数1: %1 echo 引数2: %2 echo 引数3: %3
コマンドラインで次のように引数を指定して実行する。
c:\>test.bat 引数a 引数b 引数c
結果
コマンド本体: test.bat 引数1: 引数a 引数2: 引数b 引数3: 引数c
知ってると便利
展開できる修飾子の一覧
| 修飾子 | 説明 |
|---|---|
| %~1 | %1 を展開し、囲んでいる二重引用符 ("") がある場合は削除します。 |
| %~f1 | %1 を完全修飾パス名に展開します。 |
| %~d1 | %1 をドライブ文字に展開します。 |
| %~p1 | %1 をパスに展開します。 |
| %~n1 | %1 をファイル名に展開します。 |
| %~x1 | %1 をファイル拡張子に展開します。 |
| %~s1 | 展開されたパスにショート ネームだけを含めます。 |
| %~a1 | %1 をファイル属性に展開します。 |
| %~t1 | %1 をファイルの日付と時刻に展開します。 |
| %~z1 | %1 をファイル サイズに展開します。 |
| %~$PATH:1 | 環境変数 PATH に指定されているディレクトリを検索し、%1 を、最初に見つかったファイルの完全修飾名に展開します。環境変数の名前が定義されていない場合、またはファイルが見つからない場合、この変数は空の文字列に展開されます。 |
| 修飾子 | 説明 |
|---|---|
| %~dp1 | %1 をドライブ文字とパスに展開します。 |
| %~nx1 | %1 をファイル名と拡張子に展開します。 |
| %~dp$PATH:1 | 環境変数 PATH に設定されているディレクトリから %1 を検索し、最初に見つかったディレクトリのドライブ文字とパスに展開します。 |
| %~ftza1 | %1 を、dir の出力行のように展開します。 |
ドラッグ&ドロップされたファイルを処理する(1つだけ)
ドラッグ&ドロップされたファイルは1つめの引数になるので、このようなバッチファイルを作って、テキストファイルをドラッグ&ドロップすると、メモ帳でファイルを開いてくれる(全然すごい処理ではありませんが)。
notepad %1
こうすると、渡したファイルの拡張子を.txtに変えてくれる。
move %1 "%~dpn1.txt"
参考
http://technet.microsoft.com/ja-jp/library/cc755880%28WS.10%29.aspx