ディレクトリ(フォルダ)の中にあるファイルを、
ディレクトリ構造も含めてコピーしたい事は多い。
軽微なファイルであれば、親のディレクトリ毎コピーすれば良いのですが、
以下のように、同じ階層に大きなファイルが転がっている場合はなかなかそんな方法も使えない。
Y:\a\b\c\d\e\FILE1.txt
Y:\a\b\c\d\e\FILE2.txt ←とてつもなくデカイファイル
copyコマンドではできないのでxcopyコマンドを使う
さて、ディレクトリ構造も含めてファイルをコピーしたい場合は
xcopyコマンドを使う必要がでてくる。
オプションパラメータに/Iを付けると、
「 指定されたコピー先が存在せず、コピーするファイルが複数の場合、
コピー先をディレクトリとしてコピーします。」
などという良くわからない説明の代わりに、ディレクトリ構造ごとコピーしてくれます。
期待する結果
【実行コマンド】
xcopy Y:\a\b\c\d\e\FILE1.txt W:\a\b\c\d\e\FILE1.txt /I
【期待する結果】
Y:\a\b\c\d\e\FILE1.txt
↓
W:\a\b\c\d\e\FILE1.txt
がしかし、途中で妙な質問を受ける。
「W:\a\b\c\d\e\FILE1.txt は受け側のファイル名ですか、またはディレクトリ名ですか」
(F= ファイル、D= ディレクトリ)?
【Fを選択した場合の実行結果】
W:\a\b\c\d\e\FILE1.txt
【Dを選択した場合の実行結果】
W:\a\b\c\d\e\FILE1.txt\FILE1.txt
なるほど、確かに「FILE1.txt」というフォルダ名を作成できるので
どちらかハッキリしろよということなのでしょう。
ファイルであると指定する
さて、ファイルをコピーすると分かりきっているのに
毎度毎度 「ファイル名ですか、またはディレクトリ名ですか」と聞かれるのは面倒くさい。
というわけで、パイプ処理を使って予め「F」を入力するようにします。
echo F | xcopy Y:\a\b\c\d\e\FILE1.txt W:\a\b\c\d\e\FILE1.txt /I
echoコマンドで F をパイプで送りつけてやれば、Fを押したことになって、確認を自動的にすっ飛ばしてくれます。
- ▼この記事を読んだ方は、こんな記事も読んでいます。▼