2012-02-07 16 views
5

Szukam skopiować pliki ze struktury katalogów do nowego folderu. Nie szukam zachowania struktury plików, po prostu pobierz pliki. Struktura plików jest taka, że ​​mogą to być foldery zagnieżdżone, ale wszystko w folderze o nazwie "stary", którego nie chcę przenosić.Kopiowanie plików ze struktury katalogów, ale wykluczyć nazwany folder

Podjęłam kilka prób, ale moja wiedza na temat uprawnień jest bardzo ograniczona.

przykładem jest gdzie istnieje obecna struktura pliku:

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

To daje mi wszystkie pliki Wszystko czego chcę, w tym wszystkich plików nie chcę. Nie chcę dołączać żadnych plików znajdujących się w "starym" folderze. Uwaga: istnieje wiele "starych" folderów. Próbowałem -exclude, ale wygląda na to, że odnosi się tylko do nazwy pliku i nie jestem pewien, jak -exclude na nazwę ścieżki, podczas gdy nadal kopiuje pliki.

Każda pomoc?

Odpowiedz

6

Jak o tym:

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

Wyłącz wszystko, co ma '\ stary \' nigdzie w to ścieżka.

+0

Dzięki, tego właśnie szukam! – Feety

+0

Pytanie było trochę niejednoznaczne i nie mogłem stwierdzić, czy "stary" folder miałby podfoldery, czy nie. To wyklucza oba. – mjolinor

+0

Tak, to było niejednoznaczne i chciałem, aby podfoldery "starych" były wykluczone. Powinienem to sprecyzować. Dzięki jeszcze raz! – Feety

4

Jeśli zakradniemy się do rurki where-object, myślę, że dostaniesz to, czego szukasz. Każdy obiekt, który ma właściwość o nazwie Directory (System.IO.FileInfo) o właściwości o nazwie Name o wartości old, nie zostanie przekazany do Copy-Item.

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

(Nietestowane)

+0

Dzięki, o to prosiłem. Doceniam wyjaśnienie, jak uzyskać dostęp do nazwy katalogu. To się okaże przydatne. Dziękuję Ci! – Feety

Powiązane problemy