2022年5月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

« FOR /F の eol について | トップページ | バッチファイルでテキストファイルを編集する。 »

2008年2月20日 (水)

ファイル名に=;,や全角空白を使うときは、半角空白も併せて使うべし。

一般的なドロップハンドラは、ファイル名に半角空白があるときだけ、"~"で囲むようです。
なので、ファイル名に=;,や全角空白だけが含まれているときは、"~"で囲まれません。

ところが、CMD.EXEのバッチやFORの引数では、半角空白、タブ、改行だけでなく、=;,も分離符です。:-(
と、ここまではよく知られていますが、さらに、全角空白も分離符みたいです。:-<

なので、ファイル名に=;,や全角空白を使うのは、出来れば、避けたほうがよいでしょう。
半角=;,の代わりに全角の=;、を使うとか、全角空白の代わりに半角空白1~2個を使うとか。

もし、それが避けがたいなら、敢えて、半角空白も併せて使うようにすればよいでしょう。

()&%!'`~^@なども、CMD.EXEで使われる制御文字なので、同様です。
中でも、%!は、"~"ではエスケープできないので、特に、避けたい。

例えば、エクスプローラのリネームで連番を付けると、AAA (n).XXXのような名前になりますが、これも、半角空白を入れているところが憎いところです。:-p

ほかに、#は、URLでエスケープに使われるので、避けたほうがよいでしょう。

同様に、[]!'は、Excelで使われるので、避けたほうがよいでしょう。

« FOR /F の eol について | トップページ | バッチファイルでテキストファイルを編集する。 »