2014.
03.
13
14:19:23
結論から書きますね。
引数を渡す方は、バッチファイル名に続けて半角スペース区切りで指定します。
コマンドプロンプト上から起動するときは
のような形で、別のバッチファイルから起動するときは「call」コマンドを使って
のような形です。
受け取る方は「%1」のように「%+数字」で取得できます。
「%0」にはバッチファイルの名前が入るので、引数自体は「%1」から始まります。
1つ目のパラメータは「%1」、2つ目のパラメータは「%2」といった調子ですね。
例えばこんなバッチファイルを用意してφ(--)
■C:\test_dir\test.bat
コマンドライン上からこんな呼び出し方をするとφ(--)
私の環境ではこんな結果になりましたφ(--)
基本的な引数の受け渡し方は以上です(--)
基本的な受け渡し方は以上です……(--)
基本は以上です(-∀-)
それではちょっとだけ応用編に行きましょう。
基本的には引数は「%+数字」で受け渡しますが、特殊な指定方法もあります。
例えば「%~f1」でパスとファイル名を全部取得したり「%~n1」でファイル名だけ取得したり
引数がファイル名やパスのときに便利な指定の仕方があるのです。
特殊な指定の仕方を一覧にまとめると、大体こんな感じφ(--)
数字の「1」の部分は対象とするパラメータによって変わります。
例えばこんなバッチファイルを用意してφ(--)
■C:\test_dir\test2.bat
コマンドライン上からこんな呼び出し方をするとφ(--)
(私の環境では)こんな結果になりますよφ(--)
細かい部分は地道に見てください。
また、この特殊な指定は複数組み合わせて指定することも可能です。
「%~」+「指定」+「パラメータの位置」な並びで「指定」の部分に複数並べられるのです。
例えばこんなバッチファイルを用意してφ(--)
■C:\test_dir\test3.bat
コマンドライン上からこんな呼び出し方をするとφ(--)
(私の環境では)こんな結果になりましたφ(--)
ファイル名を取得する「%~n1」と拡張子だけ取得する「%~x1」が組み合わさって「%~nx1」になることで
「ファイル名+拡張子」が取得できるってな理屈です。
組み合わせるといろいろ便利なこともできるので、お試しくださいな。
そんな感じ\(--)/
引数を渡す方は、バッチファイル名に続けて半角スペース区切りで指定します。
コマンドプロンプト上から起動するときは
test.bat param1 param2
のような形で、別のバッチファイルから起動するときは「call」コマンドを使って
call test.bat param1 param2
のような形です。
受け取る方は「%1」のように「%+数字」で取得できます。
「%0」にはバッチファイルの名前が入るので、引数自体は「%1」から始まります。
1つ目のパラメータは「%1」、2つ目のパラメータは「%2」といった調子ですね。
例えばこんなバッチファイルを用意してφ(--)
■C:\test_dir\test.bat
@echo off
echo %%0=%0
echo %%1=%1
echo %%2=%2
pause
echo %%0=%0
echo %%1=%1
echo %%2=%2
pause
コマンドライン上からこんな呼び出し方をするとφ(--)
C:\test_dir\test.bat param1 param2
私の環境ではこんな結果になりましたφ(--)
%0=C:\test_dir\test.bat
%1=param1
%2=param2
続行するには何かキーを押してください . . .
%1=param1
%2=param2
続行するには何かキーを押してください . . .
基本的な引数の受け渡し方は以上です(--)
基本的な受け渡し方は以上です……(--)
基本は以上です(-∀-)
それではちょっとだけ応用編に行きましょう。
基本的には引数は「%+数字」で受け渡しますが、特殊な指定方法もあります。
例えば「%~f1」でパスとファイル名を全部取得したり「%~n1」でファイル名だけ取得したり
引数がファイル名やパスのときに便利な指定の仕方があるのです。
特殊な指定の仕方を一覧にまとめると、大体こんな感じφ(--)
指定 | 説明 |
---|---|
%* | パラメータをすべて |
%~1 | パラメータを囲ってる"(ダブルクォーテーション)を削除 |
%~f1 | パスとファイル名を全部 |
%~d1 | ドライブ文字だけ |
%~p1 | パスだけ。ドライブ文字も無し |
%~n1 | ファイル名だけ |
%~x1 | 拡張子だけ |
%~s1 | パスを省略表現 |
%~a1 | ファイルの属性だけ |
%~t1 | ファイルの日付と時刻だけ |
%~z1 | ファイルサイズだけ |
%~$PATH:1 | 環境変数「PATH」に指定されている場所を探して、同じ名前のファイルがあればパス付きで表示 |
数字の「1」の部分は対象とするパラメータによって変わります。
例えばこんなバッチファイルを用意してφ(--)
■C:\test_dir\test2.bat
@echo off
echo %%*:%*
echo %%~1:%~1
echo %%~f1:%~f1
echo %%~d1:%~d1
echo %%~p1:%~p1
echo %%~n1:%~n1
echo %%~x1:%~x1
echo %%~s1:%~s1
echo %%~a1:%~a1
echo %%~t1:%~t1
echo %%~z1:%~z1
echo %%~$PATH:1:%~$PATH:1
echo %%~$PATH:2:%~$PATH:2
pause
echo %%*:%*
echo %%~1:%~1
echo %%~f1:%~f1
echo %%~d1:%~d1
echo %%~p1:%~p1
echo %%~n1:%~n1
echo %%~x1:%~x1
echo %%~s1:%~s1
echo %%~a1:%~a1
echo %%~t1:%~t1
echo %%~z1:%~z1
echo %%~$PATH:1:%~$PATH:1
echo %%~$PATH:2:%~$PATH:2
pause
コマンドライン上からこんな呼び出し方をするとφ(--)
C:\test_dir\test2.bat "C:\Program Files\desktop.ini" "desktop.ini"
(私の環境では)こんな結果になりますよφ(--)
%*:"C:\Program Files\desktop.ini" "desktop.ini"
%~1:C:\Program Files\desktop.ini
%~f1:C:\Program Files\desktop.ini
%~d1:C:
%~p1:\Program Files\
%~n1:desktop
%~x1:.ini
%~s1:C:\PROGRA~1\desktop.ini
%~a1:--ahs----
%~t1:2009/07/14 13:54
%~z1:174
%~$PATH:1:C:\Program Files\desktop.ini
%~$PATH:2:C:\Windows\System32\desktop.ini
続行するには何かキーを押してください . . .
%~1:C:\Program Files\desktop.ini
%~f1:C:\Program Files\desktop.ini
%~d1:C:
%~p1:\Program Files\
%~n1:desktop
%~x1:.ini
%~s1:C:\PROGRA~1\desktop.ini
%~a1:--ahs----
%~t1:2009/07/14 13:54
%~z1:174
%~$PATH:1:C:\Program Files\desktop.ini
%~$PATH:2:C:\Windows\System32\desktop.ini
続行するには何かキーを押してください . . .
細かい部分は地道に見てください。
また、この特殊な指定は複数組み合わせて指定することも可能です。
「%~」+「指定」+「パラメータの位置」な並びで「指定」の部分に複数並べられるのです。
例えばこんなバッチファイルを用意してφ(--)
■C:\test_dir\test3.bat
@echo off
echo %%~nx1:%~nx1
pause
echo %%~nx1:%~nx1
pause
コマンドライン上からこんな呼び出し方をするとφ(--)
C:\test_dir\test3.bat "C:\Program Files\desktop.ini"
(私の環境では)こんな結果になりましたφ(--)
%~nx1:desktop.ini
続行するには何かキーを押してください . . .
続行するには何かキーを押してください . . .
ファイル名を取得する「%~n1」と拡張子だけ取得する「%~x1」が組み合わさって「%~nx1」になることで
「ファイル名+拡張子」が取得できるってな理屈です。
組み合わせるといろいろ便利なこともできるので、お試しくださいな。
そんな感じ\(--)/