PR

FORコマンドで空白を含むパス指定に 「ダブルクォーテーション」 が必要な場合

スポンサーリンク

FORコマンドで(ファイルセット)に "ダブルクォーテーション" が必要な場合

FOR コマンド

FOR /F ["オプション"] %変数 IN (ファイル セット) DO コマンド [コマンド パラメーター]

forコマンドでin (ループ処理の対象)を指定する際に空白を含むパス指定に
"ダブルクォーテーション"(ダブルクォート)が必要な場合は、
オプション"usebackq"が必要です。

オプション:usebackq とは、
--次の新しい表示形式を指定します。--

ヘルプより

逆引用符で囲まれた文字列がコマンドとして実行され、
一重引用符で囲まれた文字列がリテラル文字列コマンドになり、
ファイル セットのファイル名を二重引用符で囲めるようになります。

コマンド例】

FOR /F "usebackq" %%i IN ("file set") DO (echo %%i)

参照:
例えば、自分自身のファイル11行目以降に記載し参照する場合

for /f "skip=10" %%i in (%~nx0) do (echo %%i)

for /f "skip=10" %%i in (%~0) do (echo %%i)

上記は、パスまたはファイル名に空白なしではOKですが、
ダブルクォーテーションがないためパスまたはファイル名に空白ありではNGです。

for /f "usebackq skip=10" %%i in (%0) do (echo %%i)

こちらは、パスまたはファイル名に空白ありでもOK、「%0」は、ダブルクォーテーションを含むためオプション"usebackq"が必要になります。

タイトルとURLをコピーしました