バッチファイルで、改行をエスケープすると継続行の行頭文字もエスケープされる。
改行をエスケープして、行を継続すると、継続行の行頭の文字、例えば、次の例では、二重引用符もエスケープされます。これは「仕様」です。
for %%1 in (a) do ^
"hoge hoge.cmd" ^
%%1
そのため、"hoge hoge.cmd"が実行されず、hogeを実行しようとします。
さらに、行頭の二重引用符がエスケープされたため、行末の^が2番目の二重引用符でエスケープされます。
そのため、3行目が継続行になりません。
回避策は、
(甲)
for %%1 in (a) do "hoge hoge.cmd" ^
%%1
(乙)
for %%1 in (a) do (
"hoge hoge.cmd" ^
%%1
)
(丙)
for %%1 in (a) do ^
call "hoge hoge.cmd" ^
%%1
(丁)
for %%1 in (a) do ^
h"oge hoge.cmd" ^
%%1
« IEのuserAgent文字列が肥大化する。 | トップページ | エクスプローラで、MP4ファイルのサムネールを表示する。 »