Help us understand the problem. What is going on with this article?

多くのディレクトリの中にある、それぞれのファイルを一つ上のディレクトリにコピーする

More than 5 years have passed since last update.

レアな例の上に適切なタイトルかわかりませんが。
あるディレクトリの子として多くのディレクトリがあり、その子ディレクトリ内にあるファイルを親ディレクトリにコピーさせます。日本語難し。
例えば下記のような状態、埼玉県内にある市町村(70個くらい)の名前が付いたディレクトリがあり、その中にファイルが格納されています。

D:\basepoint\さいたま市\さいたま市.csv
D:\basepoint\川越市\川越市改算.csv
D:\basepoint\川越市\点検図川越.pdf
D:\basepoint\熊谷市\熊谷市.csv
D:\basepoint\川口市\川口市変更.csv
・
・
・
D:\basepoint\蕨市\蕨市.csv

それをこんな感じにしたいわけです。

D:\basepoint\さいたま市.csv
D:\basepoint\川越市改算.csv
D:\basepoint\点検図川越.pdf
D:\basepoint\熊谷市.csv
D:\basepoint\川口市変更.csv
・
・
・
D:\basepoint\蕨市.csv

で、操作はD:\basepoint\cdした後に下記のようなコマンドイッパツで。

Get-ChildItem -Recurse -Name | Where-Object { Test-Path $_ -PathType Leaf } | Where-Object { Copy-Item $_ ./ }

特定の拡張子、例えばCSVファイルだけ取りたければSelect-String "csv"を追加して

Get-ChildItem -Recurse -Name | Where-Object { Test-Path $_ -PathType Leaf } | Select-String "csv" | Where-Object { Copy-Item $_ ./ }

こんな感じ。

Get-ChildItem -Recurse -Nameでカレントディレクトリ以下にあるファイルとディレクトリを再帰的に取得します。
パイプで繋いでWhere-Object { Test-Path $_ -PathType Leaf }で取得したパスがファイルであるもののみを取得します。
最後にWhere-Object { Copy-Item $_ ./ }でファイルをカレントディレクトリにコピーして終わり。

エクスプローラでD:\basepoint\を開いてF3キーを押した後に検索条件入れてコピペした方が楽で早いなんてご意見もあると思いますが、PoerShellでやってみたかったんですよ…。

kmr_hryk
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした