人気ブログランキング | 話題のタグを見る
xcopyでフォルダコピー時に「ファイル名ですか、またはディレクトリ名ですか」と聞いてくる
下記のようなバッチファイルで、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が「またはディレクトリ名ですか」ときいてくる罠の回避。 - 片っ端から忘れていけばいいじゃない。
by jehoshaphat | 2010-03-10 18:30 | 豆知識


<< (.Net)デザイナでテーブル... リームバブルディスクの自動実行の禁止 >>