こんにちは、作者のぷんまるです。(プロフィールはこちら♪)
仕事をしていると、たまにこんな場面ってありませんか?
特にSEの仕事をしている人はあるかもしれませんね(´_ゝ`)
はい、アンサー行きましょう!
まずコマンドプロンプトを開きましょう。
*コマンドプロンプトは「Windowsキー」+「R」を押して「cmd」を入力してOKを押すよ
続いてこのコマンドを入力します。赤字の箇所は変更してね。
cd /d コピー元フォルダーのパス
for /r %i in (ファイル名) do copy %i コピー先フォルダー\
ファイル名には「*」ワイルドカードを使ってみよう
ワイルドカードとは…なんでもあてはまる特殊文字のことだよ。
例えば…
*.logと指定すれば、AAA.logやあああ.logなどが含まれるようになります。
それでは具体例を見てみよう!
例えばこういう場合☟ファイルがいっぱい!
C:\TEST
├─1月
│ ├─1日
│ │ 0101_A.log
│ │ 0101_A.zip
│ │ 0101_B.log
│ │ 0101_B.zip
│ │ 0101_C.log
│ │ 0101_C.zip
│ │
│ ├─2日
│ │ 0102_A.log
│ │ 0102_A.zip
│ │ 0102_B.log
│ │ 0102_B.zip
│ │ 0102_C.log
│ │ 0102_C.zip
│ │
│ └─3日
│ │0103_A.log
│ │0103_A.zip
│ │0103_B.log
│ │0103_B.zip
│ │0103_C.log
│ │0103_C.zip
│
├─2月
│ ├─1日
│ │ 0201_A.log
│ │ 0201_A.zip
│ │ 0201_B.log
│ │ 0201_B.zip
│ │ 0201_C.log
│ │ 0201_C.zip
│ │
│ ├─2日
│ │ 0202_A.log
│ │ 0202_A.zip
│ │ 0202_B.log
│ │ 0202_B.zip
│ │ 0202_C.log
│ │ 0202_C.zip
│ │
│ └─3日
│ │0203_A.log
│ │0203_A.zip
│ │0203_B.log
│ │0203_B.zip
│ │0203_C.log
│ │0203_C.zip
│
└─3月
│ ├─1日
│ │0301_A.log
│ │0301_A.zip
│ │0301_B.log
│ │0301_B.zip
│ │0301_C.log
│ │0301_C.zip
│
├─2日
│ │0302_A.log
│ │0302_A.zip
│ │0302_B.log
│ │0302_B.zip
│ │0302_C.log
│ │0302_C.zip
│
└─3日
││0303_A.log
││0303_A.zip
││0303_B.log
││0303_B.zip
││0303_C.log
││0303_C.zip
*補足
こういう一覧を表示したい場合は、同じようにコマンドプロンプトでこのコマンドを実行してみてね♪
tree /f ファイルパス
この例だと、C:\TESTというフォルダーの下にいろんなフォルダーやファイルがあります。
この中から拡張子が「.log」というファイル(青字)だけを一か所にコピーします。
コピー先はC:\抽出先というフォルダーにしてみます。
コマンドプロンプトを開いて、以下を実行します。
cd /d C:\TEST
for /r %i in (*.log) do copy %i C:\抽出先\
ちなみに普通にこういうやり方でもできるけど、ファイル数が多すぎたりすると検索に時間がかかってしまうのです(゚д゚)!最悪固まる…!
ファイル数が少ない時はいいけど、何百、何千とある時は今回紹介したやり方で試してみてね(*´ω`)