バッチパラメーターの修飾子
メモ
このようなバッチファイルを用意して
@echo off echo %%1 : %1 echo %%~d1 : %~d1 echo %%~p1 : %~p1 echo %%~n1 : %~n1 echo %%~x1 : %~x1 echo %%~dp1 : %~dp1 echo %%~nx1 : %~nx1 echo %%~dpn1 : %~dpn1
このように実行すると
test.bat "C:\Program Files\Internet Explorer\iexplore.exe"
このように分解される。
%1 : "C:\Program Files\Internet Explorer\iexplore.exe" %~d1 : C: %~p1 : \Program Files\Internet Explorer\ %~n1 : iexplore %~x1 : .exe %~dp1 : C:\Program Files\Internet Explorer\ ←「"」が外れる %~nx1 : iexplore.exe %~dpn1 : C:\Program Files\Internet Explorer\iexplore ←「"」が外れる
エンコーダーなんかで拡張子のみを変えたいなら
%1 | → | %dpn1.mp3 |
"C:\honya rara\test.wav" | → | C:\honya rara\test.mp3 |
↑「"」が外れてスペースがコマンドの区切りと解釈されてエラーになる
"%dpn1.mp3" とくくらないとだめ。
「""」でくくる↓
%1 | → | "%dpn1.mp3" |
"C:\honya rara\test.wav" | → | "C:\honya rara\test.mp3" |