ファイル名に=;,や全角空白を使うときは、半角空白も併せて使うべし。
一般的なドロップハンドラは、ファイル名に半角空白があるときだけ、"~"で囲むようです。
なので、ファイル名に=;,や全角空白だけが含まれているときは、"~"で囲まれません。
ところが、CMD.EXEのバッチやFORの引数では、半角空白、タブ、改行だけでなく、=;,も分離符です。:-(
と、ここまではよく知られていますが、さらに、全角空白も分離符みたいです。:-<
なので、ファイル名に=;,や全角空白を使うのは、出来れば、避けたほうがよいでしょう。
半角=;,の代わりに全角の=;、を使うとか、全角空白の代わりに半角空白1~2個を使うとか。
もし、それが避けがたいなら、敢えて、半角空白も併せて使うようにすればよいでしょう。
()&%!'`~^@なども、CMD.EXEで使われる制御文字なので、同様です。
中でも、%!は、"~"ではエスケープできないので、特に、避けたい。
例えば、エクスプローラのリネームで連番を付けると、AAA (n).XXXのような名前になりますが、これも、半角空白を入れているところが憎いところです。:-p
ほかに、#は、URLでエスケープに使われるので、避けたほうがよいでしょう。
同様に、[]!'は、Excelで使われるので、避けたほうがよいでしょう。