下記のようなバッチファイルで、xcopy でフォルダコピーを書いてました。(相対パス指定でのコピーです。a,b,cはフォルダを表してます。)
xcopy "a" "b\c" /e /c /q /y
pause
なお、この時のフォルダ構成は下記のような感じです。
├─a
│ └─a
│ test.txt
│
└─b
コピー先が b¥c なのですが、c フォルダが無いパターンです。
この場合、バッチを実行すると下記のようなメッセージが表示され、入力を要求されます。
D:\mydoc\豆知識>xcopy "a" "b\c" /e /c /q /y
b\c は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)?
"D"を選択すると、ちゃんとコピーされますが、"F"を選択すると、c というファイルができてしまいます。
XCOPY - 拡張COPY [FPCU]DOS/V&Windowsコマンド・プロンプト・リファレンスによると、「複写先が既存のディレクトリを含まず、かつ、名前が円記号(¥)で終わっていない場合」に表示されるようです。
回避策としては、/i オプションを付けるか、受け側の指定を¥で終端するといいようです。
xcopy "a" "b\c\" /e /c /q /y
もしくは
xcopy "a" "b\c" /e /c /q /y i
余談ですが、ファイルのコピーで xcopy 使うときも同様の現象が出るようなので、下記のように強制的にファイルに指定してやるといいようです。
echo F | xcopy test.txt test2.txt /R /Y
参考:
単一ファイルコピー時に xcopyが「またはディレクトリ名ですか」ときいてくる罠の回避。 - 片っ端から忘れていけばいいじゃない。