とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

xcopy ディレクトリ構造も含めてファイルをコピーしたい


ディレクトリ(フォルダ)の中にあるファイルを、
ディレクトリ構造も含めてコピーしたい事は多い。

軽微なファイルであれば、親のディレクトリ毎コピーすれば良いのですが、
以下のように、同じ階層に大きなファイルが転がっている場合はなかなかそんな方法も使えない。

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を押したことになって、確認を自動的にすっ飛ばしてくれます。

スポンサーサイト

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。