2012-02-07 13 views
5

ディレクトリ構造から新しいフォルダにファイルをコピーしたいと考えています。私は、ファイル構造を維持するために探していない、ただファイルを取得します。ファイル構造はネストされたフォルダになる可能性がありますが、 'old'という名前のフォルダには移動したくないものがあります。ディレクトリ構造からファイルをコピーしますが、名前付きフォルダは除外します

私はいくつか試みましたが、私のパワーシェルの知識は非常に限られています。現在のファイル構造が存在する場所であること

例:

Get-ChildItem -Path "C:\Example\*" -include "*.txt -Recurse |% {Copy-Item $_.fullname "C:\Destination\"} 

これは私が望んでいないすべてのファイルを含め、すべてのファイルすべて私が欲しいを与えます。私は 'old'フォルダにあるファイルは含めたくありません。注意:複数の「古い」フォルダがあります。私は-excludeを試みましたが、ファイル名にしか関係していないように見えますが、ファイルをコピーしながらパス名に-excludeする方法がわかりません。

助けが必要ですか?

答えて

6

(未テスト)

Get-ChildItem -Path "C:\Example*" -include *.txt -Recurse | ? {-not ($_.Directory.Name -eq "old")} | % {Copy-Item $_.fullname "C:\Destination\"} 

これはどう:

C:\Example*" -include "*.txt -Recurse | 
    ?{$_.fullname -notmatch '\\old\\'}| 
    % {Copy-Item $_.fullname "C:\Destination\"} 

'\古い\' はすべてのものを除外し、それはパスだどこかで。

+0

ありがとう、これは私が探しているものです! – Feety

+0

質問はあいまいで、 "古い"フォルダにサブフォルダがあるかどうかはわかりませんでした。これは両方を除きます。 – mjolinor

+0

はい、あいまいでしたが、私は古いフォルダのサブフォルダを除外したかったのです。私はそれを指定するべきだった。再度、感謝します! – Feety

4

私たちがパイプラインに少しをこっそりと持ち込むと、あなたが求めるものが得られると思います。値がoldNameというプロパティーを持つDirectorySystem.IO.FileInfo)というプロパティーを持つ各オブジェクトは、Copy-Itemに渡されません。

+0

ありがとう、これは私が求めているものです。ディレクトリ名にアクセスする方法についての説明に感謝します。これは有用となるでしょう。ありがとうございました! – Feety

関連する問題