%~dp0 とは
%~dp0 とは、%0にオプション構文の『 ~ 』と『 d 』と『 p 』が付いたものです。
それぞれを説明すると、
%0
実行されているファイルのパスです。
~
"(ダブルクオート)を除く
d
ドライブ文字だけに展開する
p
ファイル名を除くパスの部分に展開する
つまり%~dp0 は、『実行されているファイルが置かれているカレントディレクトリ』を表します。
もう少し詳しく説明すると次のようになります。
%0、%1、%2 などは引数参照と呼ばれ、%1、%2 はバッチに渡される引数を順に表します。
%0は特殊なもので、起動されたバッチファイルのフルパスが格納されます。
%0で渡されるフルパスには、スペースなどが含まれていることがあるので、ダブルクオートの引用句で囲われています。
このため、%0は
"C:\・・・\・・・\"
となっているため、
%0Filename
は
"C:\・・・\・・・\"Filename
となります。
これでは"(ダブルクオート)が邪魔になるため、%~0 として
%~0Filename
とすると
C:\・・・\・・・\Filename
となります。
それ以外のオプション構文はcallのヘルプで詳しく説明されています。
C:\>call /? バッチ プログラムを別のバッチ プログラムから呼び出します。 CALL [ドライブ:][パス]ファイル名 [バッチパラメーター] バッチパラメーター バッチ プログラムで必要なコマンド ライン情報を指定します。 コマンド拡張機能を有効にすると、CALL は次のように変更されます: CALL コマンドは、CALL のターゲットとしてラベルを受け付けるようになります。 構文は、次のとおりです: CALL :ラベル 引数 指定された引数で新しいバッチ ファイル コンテキストが作成され、指定 されたラベルの次の文に制御が渡されます。バッチ スクリプト ファイルの 最後に 2 回到達することによって、2 回 "終了" する必要があります。 1 回目に最後に到達したときには、制御は CALL 文の次の行に返されます。 2 回目に、バッチ スクリプトが終了します。バッチ スクリプトから "戻る" ための GOTO :EOF 拡張機能の説明については、GOTO /? と入力してください。 また、バッチ スクリプトの引数参照 (%0、%1 など) の展開は、次のように 変更されました: %* バッチ スクリプト内では、すべての引数 (%1、%2、%3、%4、 %5 など) を参照します。 バッチ パラメーター (%n) の置換は拡張されました。次のオプション構文 を使うことができます: %~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 と PATH は、他の有効な値で置き換えることができ ます。%~ 構文は有効な引数の数によって区切られます。%~ 修飾子 は %* と同時には使用できません。
関連記事
- batファイルのコマンドが完了してもウインドウを開いたままにする方法
- 環境変数(PATH)を設定する方法
- 64bit版Windowsで32bit用のProgram Filesフォルダのパスを取得する方法
- ユーザーフォルダのパスを取得する方法
- コマンドプロンプトの文字コードを変える方法
スポンサーリンク