Windowsのバッチプログラムを組む際、バッチのある場所は「%~dp0」で取得できますが、この「%~dp0」ってなんだか知って使ってますか?
改めてこのパラメータのオプションの構文を理解しておきましょう!
オプション指定の構文をまとめてバッチに書いてみました。バッチのファイル名は、「BathFileParameters.bat」です。
@echo off
echo [%%1は、第1引数のファイル名]
echo %1
echo.
echo [%%~1は、%%1を展開し、周囲の引用符(")を削除]
echo %~1
echo.
echo [%%~f1は、完全修飾パス名に展開]
echo %~f1
echo.
echo [%%~d1は、ドライブ文字に展開]
echo %~d1
echo.
echo [%%~p1は、パスに展開]
echo %~p1
echo.
echo [%%~n1は、ファイル名に展開]
echo %~n1
echo.
echo [%%~x1は、ファイル拡張子に展開]
echo %~x1
echo.
echo [%%~s1は、展開されたパスには短い名前のみが含まれます]
echo %~s1
echo.
echo [%%~a1は、ファイル属性に展開]
echo %~a1
echo.
echo [%%~t1は、ファイルの日付と時間に展開]
echo %~t1
echo.
echo [%%~z1は、ファイルのサイズに展開]
echo %~z1
echo.
echo [%%~dp1は、ドライプ文字とパスに展開]
echo %~dp1
echo.
echo [%%~nx1は、ファイル名と拡張子に展開]
echo %~nx1
echo.
echo [%%~ftza1は、dirのような出力行に展開]
echo %~ftza1
echo.
「echo.」は、改行を出力するためのものです。このバッチに与える引数は、
BathFileParameters.bat "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
です。実際に実行した結果は、以下です。
[%1は、第1引数のファイル名]
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
[%~1は、%1を展開し、周囲の引用符(")を削除]
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
[%~f1は、完全修飾パス名に展開]
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
[%~d1は、ドライブ文字に展開]
C:
[%~p1は、パスに展開]
\Program Files (x86)\Microsoft\Edge\Application\
[%~n1は、ファイル名に展開]
msedge
[%~x1は、ファイル拡張子に展開]
.exe
[%~s1は、展開されたパスには短い名前のみが含まれます]
C:\PROGRA~2\MICROS~1\Edge\APPLIC~1\msedge.exe
[%~a1は、ファイル属性に展開]
--a--------
[%~t1は、ファイルの日付と時間に展開]
2021/06/03 15:41
[%~z1は、ファイルのサイズに展開]
3278224
[%~dp1は、ドライプ文字とパスに展開]
C:\Program Files (x86)\Microsoft\Edge\Application\
[%~nx1は、ファイル名と拡張子に展開]
msedge.exe
[%~ftza1は、dirのような出力行に展開]
--a-------- 2021/06/03 15:41 3278224 C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
では、まとめです。
バッチパラメーター | 説明 |
%1 | 第1引数のファイル名 |
%~1 | %1を展開し、周囲の引用符(“)を削除 |
%~f1 | 完全修飾パス名に展開 |
%~d1 | ドライブ文字に展開 |
%~p1 | パスに展開 |
%~n1 | ファイル名に展開 |
%~x1 | ファイル拡張子に展開 |
%~s1 | 展開されたパスには短い名前のみが含まれます |
%~a1 | ファイル属性に展開 |
%~t1 | ファイルの日付と時間に展開 |
%~z1 | ファイルのサイズに展開 |
%~dp1 | ドライプ文字とパスに展開 |
%~ftza1 | dirのような出力行に展開 |
noru
では!では!
コメント