バッチ処理でファイルのコピー

このQ&Aのポイント
  • 外付けHDD内のファイルをカテゴリごとにフォルダ分けされた5000個のファイルから、エクセルのa列にあらかじめ記載されたファイル名と同じファイルを取り出し、違う場所のフォルダにコピーする方法を教えてください。
  • バッチ処理やコマンドプロントの処理を使って、5000個のファイルの中からエクセルのa列にあらかじめ記載されたファイル名と同じファイルを取り出し、他の場所にコピーする方法を教えてください。作業が効率化できる方法を知りたいです。
  • 5000個のファイルからエクセルのa列にあらかじめ記載されたファイル名と同じファイルを見つけ、違うフォルダにコピーする作業を効率化する方法を教えてください。バッチ処理やコマンドプロントの処理など、自動化の方法があれば教えてください。
回答を見る
  • ベストアンサー

バッチ処理でファイルのコピー

外付けHDD内にカテゴリごとにフォルダ分けされた5000個のファイルのうち エクセルのa列にあらかじめ記載された1000項目のファイル名と同じファイルを取り出し 違う場所のフォルダにコピーさせ一箇所に集めたいです。(cドライブ内や、違う外付けHDDなど) 現在一つ一つ手作業で、コピーさせています。 早く作業が終わらせれる バッチ処理やコマンドプロントの処理があれば、ご教授お願いできないでしょうか? 作業としては、単純そうなのですが、1日つぶしてしまい、時間をもったいなく感じております。 よろしくお願い致します。 ※補足 フォルダ名サブフォルダ名ファイル名には日本語が含まれていることもあります。 またファイル名で名前が重複しているものはありません。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

>ファイル名のみ記載されています。 もう一回仕様をきっちりかためてから質問された方がいいかと 後だし情報ばかりでは回答者に無駄な作業をさせすぎです どこどこのフォルダ以下の最大何階層(もしくはそれもわからない?)のフォルダの なかから、ファイル名が合致する(大文字小文字のブレどうする?)ものを どこどこへ移動する のように決めていかないと・・・

miyabi_700
質問者

お礼

アドバイスありがとう御座います。 もう一度仕様をまとめて質問しなおしてみます。 ありがとう御座いました。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>対象のファイルのフルパスの付け方がわかりません。 ごめん、意味がわからない エクセルに記載されているのはフルパスではなくファイル名のみってことですか? どこにあるかわからないファイルを移動するのはむちゃですね 一応再帰的にフォルダーを探していく方法はないことはないですが エクスプローラからファイル名で検索するとかなり遅いですよね、あれです。

miyabi_700
質問者

お礼

ファイル名のみ記載されています。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

マルチポストのため質問がクローズされていますが こちらの#3を試してみてください http://okwave.jp/qa/q8652757.html

miyabi_700
質問者

お礼

対象のファイルのフルパスの付け方がわかりません。 何か良い方法はありますか?

回答No.1

Excelを使っているのに「バッチ処理やコマンドプロントの処理」なのはどうしてでしょうか。 以下は適当に置き換えてください 作業フォルダ: c:\work コピー先フォルダ: c:\temp 0)前準備 0.1) カテゴリごとにフォルダ分けされたファイルの全リストを作っておく del c:\work\filelist dir /s /b d:\ >> c:\work\filelist dir /s /b c:\Users\ほげほげ\Desktop >> c:\work\filelist 0.2)エクセルのa列をコピーして、テキストファイル(pickup.txt)にペーストして保存 1)以下を実行 @for /f "delims==" %i in (pickup.txt) do ( @(for /F "usebackq" %j in (`findstr "%i" filelist`) do @(echo copy "%j" c:\temp)) ) 2)実行結果を確認 copy 「同じファイルを取り出し」で取り出されたファイル 「一箇所に集めたい」フォルダ と言う文字列が表示されます。 3)実行結果がよさそうだったら、1)の2行目のcopyコマンドの前にあるechoを外して再度実行 注: a) 作業 0.1)の dir を取るフォルダは「cドライブ内や、違う外付けHDDなど」の実態に合わせて下さい。 b) 1)をコマンドプロンプトに入力すると各行を確定したと時に"More?"と   表示されますので、次の行を入力して下さい。   面倒であれば一行にまとめてもかまいません。 c) コマンドプロンプトから入力するときはこれで良いですが、   バッチファイルにするときは%iを%%iの様に2重にして下さい。

miyabi_700
質問者

お礼

ご回答頂きまことにありがとう御座います。 自分はファイルの管理・運用する事については初心者で バッチファイルやエクセルファイルについても同様に初心者です。 エクセルを使っているのに と冒頭に書かれていますが。 今回の件では どのように運用するのがポピュラーなのでしょうか?

関連するQ&A

  • バッチ処理でファイル整理

    外付けHDD内にカテゴリごとにフォルダ分けされた5000個のファイルのうち エクセルに書かれた1000項目のファイルを取り出し 違う場所のフォルダに移動させ一箇所に集めたいです。(cドライブ内や、違う外付けHDDなど) 現在一つ一つ手作業で、移動させています。 さくっと作業が終わらせれる コマンドプロントや、バッチファイルあるいはそういうことができるツールなどあれば ご教授お願いできないでしょうか? 作業としては、単純そうなのですが、1日つぶしてしまい、時間をもったいなく感じております。 よろしくお願い致します。 ※補足 フォルダ名ファイル名には日本語が含まれていることもあります。 またファイル名で名前が重複しているものはありません。

  • ファイル管理、ファイルの移動について

    外付けHDD内にカテゴリごとにフォルダ分けされた5000個のファイルのうち エクセルに書かれた1000項目のファイルを取り出し 違う場所のフォルダに移動させ一箇所に集めたいです。(cドライブ内や、違う外付けHDDなど) 現在一つ一つ手作業で、移動させています。 早く作業が終わらせれる コマンドプロントや、バッチファイルあるいはそういうことができるツールなどあれば ご教授お願いできないでしょうか? 作業としては、単純そうなのですが、1日つぶしてしまい、時間をもったいなく感じております。 よろしくお願い致します。 ※補足 フォルダ名ファイル名には日本語が含まれていることもあります。 またファイル名で名前が重複しているものはありません。

  • バッチでサブフォルダ内のファイルも含めたコピー処理をするには

    DOSコマンドのコピーコマンドについての質問です。 指定されたフォルダ内のファイル全て(サブフォルダ内に格納されているファイルも全て)をc:\bkup\にコピーするバッチを組みたいのですがどのようにすればよいのでしょうか。 xcopy /y /e %1 c:\bkup\ とした場合、サブフォルダもコピー対象に入りますがサブフォルダ内のファイルの格納先がc:\bkup\サブフォルダ名\になってしまい、私の実現したい処理とは異なります。 サブフォルダ内のファイルもc:\bkup\にコピーするにはどうすればよいのでしょうか。 宜しくお願い致します。

  • ファイルの整理 バッチファイル作成

    フォルダ内にある5000個のファイルのうち エクセルに書かれた1000項目のファイルを取り出し違うフォルダに移したいのですが 現在一つ一つ手作業で、移動させています。 さくっと作業が終わらせれる コマンドプロントや、バッチファイルあるいはそういうことができるツールなどあれば ご教授お願いできないでしょうか? 作業としては、単純なのですが、1日つぶしてしまい、時間をもったいなく感じております。 よろしくお願い致します。

  • ファイルの整理 バッチファイルの作成_2

    フォルダ内にある 複数のフォルダ内に点在する 5000個のファイルのうち エクセルに書かれた1000項目のファイルを取り出し違うフォルダに移したいのですが 現在一つ一つ手作業で、移動させています。 フォルダ構成を守りながら さくっと移動作業が終わらせれる コマンドプロントや、バッチファイルあるいはそういうことができるツールなどあれば ご教授お願いできないでしょうか? 作業としては、単純なのですが、1日つぶしてしまい、時間をもったいなく感じております。 よろしくお願い致します

  • VBA バッチファイルでコピー出来ない

    以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell(folderB\batch.bat, vbnormalfocus) End sub Batch.batの中身 Copy folderA\fileA . 注:folderAやfolderBはそれぞれのフォルダのフルパスです。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • バッチ処理での保存

    「バッチ未処理」「バッチ済み」の二つのフォルダを作り、「バッチ未処理」の中のファイルを、バッチ処理で解像度を落として「バッチ済み」フォルダに保存したいと思い、以下のような作業をしました。 1.アクションの記録ボタンを押してアクション名「解像度350」を設定 2.「1.pdf」を開く 3.解像度を600から350に落とす 4.保存を押して上書き保存 5.閉じる 6.アクションの記録終了 7.自動処理→バッチ 8.解像度350を選ぶ 9.ソース: で「バッチ未処理」を選んで、サブフォルダをすべて含めるにチェック (PDFファイルはサブフォルダ内にあるため) 10.実行後: で「フォルダに保存」を選び「バッチ済み」を選択 11.エラー発生時に中止を選択しOK やってみたのですが、同じファイル(01.pdf)が何回も開いてしまい、保存ダイアログがいちいち出てしまいます。 自動ですべて開いて、自動で保存したいのですが、そういう事はできないのでしょうか? 処理するファイルは300ぐらいあって、それぞれフォルダ別に別れています。 (説明不足のときはすぐに補足するのでおっしゃってください。)

  • バッチファイルにてフォルダのみをコピーしたい

    たくさんのフォルダが有って、その下にもサブフォルダがあります。 また、フォルダの中にはファイルも存在します。 このような状況の中、サブフォルダもフォルダもコピーせず、フォルダのみをコピーしたいのですが、バッチファイルにて可能でしょうか?

  • VBA バッチファイルでコピーできない

    この質問は直近で出した質問を誤って締め切ってしまったため、再質問として書いてます。 以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell("""" & folderB\batch.bat & """", vbnormalfocus) End sub Batch.batの中身 Copy "folderA\fileA" . '見えにくいですが、最後にピリオドがあります。 folderAやfolderBはそれぞれのフォルダのフルパスです。パスに空白を含むため " で囲むようにしてます。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • バッチファイル 別ファイルにリストしてあるファイルをコピーしたい

    バッチファイルで、ファイル名前をリストしてあるの別ファイルを参照して、リストの名前のファイルを任意のフォルダにコピーしたいです。 ●条件 ・コピー元/コピー先は固定でよいです。 ・できれば、コピー元のサブフォルダのファイルも対象にしたいです。 (この場合、リストにもxxx\○○○.txt のように記述) 「for」コマンドを使うのでしょうか? 宜しくお願いいたします。