- ベストアンサー
bat処理リストを元にコピー
batやvbsを使って下記のような動作ができるか教えて頂きたいです。 ・ ・ (1)数十個のファイル名一覧を拡張子付きでcsvでリスト化(ファイル毎に改行)済み (2)上記ファイルを元に[p:]ドライブ内でサブディレクトリを含め検索し[C:\copy]フォルダにコピーする。 以上の動作ですがbatでfor文を使用してやろうとしましたが、サブディレクトリまで含めた検索の動作ができません。 お分かりになる方宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
cd /d P:\ for /f "delims=" %%A in (C:\full-path\filelist.csv) do for /f "delims=" %%B in ('dir /s /b %%A') do copy "%%B" C:\copy ですかね。 数十個だから良いと思いますが、P: の中の全ディレクトリを数十回なめることになります。 もし数百個が対象だと、P: の中の全ファイルリストを作ってからそれと比べるような感じですかね。
その他の回答 (1)
- kteds
- ベストアンサー率42% (1883/4442)
powershell を使って下記のようにすればいいです。 batやvbsを使うよりシンプルになります。 p:\sourceフォルダ傘下のすべてのサブフォルダを含めて、 拡張子 .csv ファイルを抽出して、 c:\dest フォルダに出力する例です。 わずか1行で実現しています。 foreach($i in get-childitem -recurse p:\source\*.csv){copy-item $i -destination c:\dest}
お礼
今回はcsvファイル内に記載のあるファイルをコピー対象にしたいため別の方をベストアンサーとさせて頂きます。 powershell自体の存在も知らなかったので今後勉強の対象とさせて頂きます。 回答ありがとうございました。
お礼
処理時間がある程度掛かってしまうのは覚悟の上でしたので、大変助かりました。 ありがとうございました。