- ベストアンサー
複数フォルダをまとめて移動するバッチ
複数フォルダを、フォルダ内のファイルごと、移動させたいです。 イメージで言うと、下の C001やC002の階層にあるフォルダ群を、A001の下に持って行きたいんです。 (B001のフォルダがジャマになっている) [image] root:. └─A001 └─B001 ├─C001 │ ├─File01 │ └─File02 └─C002 ├─File01 └─File02 [/image] moveコマンドで出来るのかなぁと思っていたのですが、 複数ファイルは出来るんだけど、複数フォルダは出来ませんでした。 ファイルを一括して特定のフォルダにまとめるのではなく、 フォルダ構造は残して複数フォルダを一括移動させたい(中間フォルダ階層を消したい)です。 実際には上のイメージとは異なり、数百個のフォルダがあり、ファイル数も各フォルダに数万個入っているので、エクスプローラから切り取り&貼り付けを行うと、それだけで10分近くかかってしまい困っています。 可能なら、バッチで夜中に自動実行させて済ませたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、こんな感じでそのディレクトリにある全てのフォルダを一つ上のディレクトリに移動できると思いますが。 ------- @echo off for /d %%f in (*) do move %%f .. -------
その他の回答 (1)
- isle
- ベストアンサー率51% (77/150)
標準のコマンドでやるのなら、XCOPYコマンドで階層ごとコピーした後、DELコマンドで元を削除ということになると思います。 Cygwinのmvコマンドだとフォルダの移動もできます。 フォルダの移動だけのコストで中身も付いてきます。 CygwinでなくてもUNIXライクツールの移植版でできたと思います。
お礼
ありがとうございますCygwinは自宅では愛用しているのですが、会社のしかも他人のPCだったので、OS標準機能で済ませたかったんです。 説明から漏れていました、申し訳ありません m(__)m XCOPYのあとRDって言うのも考えたのですが、 環境説明の所にも書いたように、非常に大量のファイルを抱えているので、泣きたくなるくらいベラボウな時間を喰ってしまうんです!! 同じドライブ内の移動や単なる削除なのに (T_T) ・・・きっと$MFTとかの検索と書き換えで時間を喰ってるんでしょうね。 なので二重処理ではなく、"move"的な方法を求めました。 僕もisleさんと同じで、UNIXライクなツールでやるのがホントは好きなんですよー(^.^)/~~~
お礼
ありがとうございます。 まさにこれです! for文で回すだけで良かったんですね。 「移動させたい」にばかり気を取られて思い付きませんでした。 forのリファレンスを見たのですが、非常に勉強になりました。 ありがとうございます。