• ベストアンサー

複数フォルダから一括ファイル移動する方法、ソフトを

複数のフォルダー内のファイルを一つのフォルダーに移動させたいのですが どのような方法がいいでしょうか? 良い方法、フリーソフトなどがあれば教えていただきたいです。 たくさんフォルダーがありすぎて、一つ一つCtrl+A・cut&ペーストするのが辛すぎるものですから、、、。 使用OSはXPです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

念のため、回答1で間違ったコーディング等する人が現れるといけないので回答しておきます。 リスクを認識したうえで運用するかしないか、そして、運用結果は自己責任で行ってください。 以下のコーディング例(3行)を参考に目的のデータをコピーするバッチファイルを「CopyFile.bat」等の名前でメモ帳で作成しANSIで保存します。 txtではなくbatで保存する必要がありますので注意してください。 コーディング例(二重線内の三行) ===== md C:\TGT_FLD for /d %%d in (*) do copy %%d\*.JP?? C:\TGT_FLD\*.* pause ===== (バックスラシュは円記号) コーディングの解説 【md】(MKDIR・メイクディレクトリ) これはローカルディスクc:に md(MKDIR・メイクディレクトリ)で TGT_FLDという名のフォルダーを作成します。 【for …copy *.JP?? c:\*.*】for <パラメータ>copy<ファイル名> <ファイル名>コマンド forとパラメータ /dで各々のフォルダ内のデータをチェックします。 copy *.JP?? C:\TGT_FLD\*.* で各フォルダー内の任意のフォルダー名(*)で拡張子(JP??)に該当するJPEG、JPG、jpg、jpegをすべてC:のTGT_FLDフォルダーへ同じ名前(*.*)でコピーします。 すべてのファイルを対象にする場合は for /d %%d in (*) do copy %%d\*.* C:\TGT_FLD\*.* とします。 【pause】 これは一旦、処理を止めるということです。デバッグのために止めています。任意のキー入力があれば抜けて終了します。 問題が無くなれば削除してかまいません。 【補足】 *と?はワイルドカードで任意の該当するすべてのファイルをさし*は文字列(数文字分)?は1文字のワイルドカードになります。 バッチファイルの注意 batファイルは必ずコピーしたいフォルダー群と同じフォルダーにコピー等して置きます。 そのバッチファイルをクリックやダブルクリックあるいは右クリックで実行します。 メモ帳で作成すると右クリックは実行ではなく「開く」になっているかもしれませんので開くで実行する。編集は右クリックの編集で行います。 拡張子をうまく指定することで、すべてのファイルや特定の任意のファイルやデータのみを抽出してコピーされます。 拡張子についてはマイコンピュータ→ツール→フォルダーオプション→ファイルの種類を参照願います。 大文字、小文字はコマンドやファイル名では区別していない項目がありますので留意してください。 少なくともコマンドやステートメントはCOPYもcopyも同じです。 実行にあたっての注意事項 ○バッチファイル(<file名>.bat) は一種の簡単なプログラムの様なものなので自己責任で行ってください。 デバッグ、結果の検証は自分で行ってください。実行した結果がどのようになるか責任は持ちません。 ○データーが多い場合はあらかじめ数個のフォルダをテストするため任意のフォルダーに移動し、デバッグした方がいいです。 ○記憶媒体の容量やイレギュラーな処理は有りませんので注意してください。 ○コマンドプロンプトではフォルダー名にスペースがないこと。よって、My Pictures My Documentsなどがサポートされていません。  バッチファイルがそこ(親フォルダー)に存在していても問題ありませんがバッチファイル内のコマンドやステートメントはそれを扱えません。 ○コマンドプロントを起動しHELP[Enter]でヘルプが表示されます。(すべてではありません) ○ファイル名が同じ場合は不都合が生じます。その場合あらかじめren等でrenameします。 ○コマンドプロンプトは普通、アクセサリーにあります。終了はEXITまたはexit、[Enter]で出来ます。 以上

その他の回答 (1)

回答No.1

不適切な表現や失礼な表記があればご容赦ください。 フリーソフトを期待して待っていたのですが、ご回答がないようなので自分で出来る範囲の回答をお答えします。 コンピュータ(大型)のもっとも得意な分野が大量のデータ処理でパーソナルコンピュータのWindows系のもっとも苦手な分野かも知れません。 プログラムが必要でWindows系のプログラムは更に面倒になるのでやっぱりフリーソフトないのかな? 以下に紹介の方法がありますが、制約がいくつか着きます。 それでも良ければもっと具体的にお教えしますのでその時は返信ください。 1~3行のコーディングなので結果が期待通りか否かの確認程度ですむ様な気もします。(DOS経験者が楽かも) また、COPYではなくRENAMEを使うと見せたくない写真、EXECLデータなどの拡張子を自分だけの拡張子にして他人(素人)に見られない様にするなど応用も簡単です。 【方法の説明と制約等】 コマンドプロンプトを使います。 具体的にはbatファイルを作成してforステートメントでフォルダーをサーチし、データがあればそのバッチファイルの存在する所またはCD(カレントディレクトリ)にあるフォルダー群のデータを一か所に全部コピーできます。 一か所のフォルダーは、一旦HDDのルート(C:\ D:\)もしくは浅い階層でフォルダーにスペースがない所にします。 一旦集約したデータをフォルダーごと最終目的の所に移動して終了です。 送る側は任意で親フォルダーにスペースがあってもOKですがアクセスするデータのフォルダーにはスペースは不可です。 但し、デバッグになる可能性がありますがたったの最短で1行のファイルです。 デバッグを考慮しても2~3行です。 また、コマンドプロンプトのフォルダー指定の制約から前述の通りスペースの入ったフォルダー名には実行されません。 例フォルダー名『ABC DEF』、何故かデータの方はスペースがあってもやっているようです。 同じ名前のファイルが万一存在するとどちらかのデータはコピーされていない。イレギュラーな処理ルーチンは有りません。 以上の様な感じですがニーズに合いますか?やりますか? これは個人的にはもうやっていて実行可能なことは私のパソコンで確認済みです。 これは、コマンドプロンプトで実行を確認できます。何のインストールも不要のはずです。 なお、実行した結果の責任は負いかねます。 仮のフォルダーを2~3個コピーして作って実行、デバッグし、納得したら数百単位のデータに適用すればよいかと思います。1~2分もあれば千近くのデータ(写真でしたが)が集約可です。(データの大きさにもよる) 以上

関連するQ&A