2017-01-26 19 views
1

Ich habe ein Skript, das die Größe von Bildern in Ordnern und Unterordnern reduziert. Ich möchte jedoch einige der Ordner ausschließen.Ausschließen von Ordnern für die reduziert die Größe von Bildern

Ich habe den Parameter $source_listephotos = Get-ChildItem $source -Recurse | where {$_.FullName -notmatch $exclude_list} gefunden, aber es erlaubt einen Ordner auszuschließen und nicht mehrere.

$source = "U:\TEST\Compression\images" 
$exclude_list = @('Imprimerie') 

$source_listephotos = Get-ChildItem $source -Recurse | where {$_.FullName -notmatch $exclude_list} 

Haben Sie eine Lösung?

+2

Erstellen Sie Ihre excludelist als String wie folgt: ‚Imprimerie | Imprimerie1abc‘ ... würde auch empfehlen, i $ _ passend auf den Namen, weil Fullname den gesamten Pfad entsprechen würde.. Betrachten Sie die Kombination Ihrer where-Klausel mit $ _. psiscontainer -eq $ true – Kiran

+0

Mögliches Duplikat von [Wie kann eine Liste von Elementen von Get-ChildItem in der Powershell-Funktion ausgeschlossen werden?] (http://stackoverflow.com/questions/19207991/how-to -exclude-list-of-items-from-get-childitem-result-in-powershell) –

+0

Vielen Dank für Ihre Hilfe !! – pcarrey

Antwort

1

Die match/notmach Operatoren regulären Ausdrücken (regex), so die einfachste Lösung, um Ihren Code zu beheben, ist die Liste für Ihre Ordner alternation mit Pipe-Symbol zu verwenden, .

$source = "U:\TEST\Compression\images" 
[regex] $exclude_list = “(Imprimerie|TestAnotherName)” 

$source_listephotos = Get-ChildItem $source -Recurse | where {$_.FullName -notmatch $exclude_list} 
+1

Vielen Dank für Ihre Antwort. Ich habe es versucht und mein Skript funktioniert so, wie ich es möchte – pcarrey

2

können Sie die Ausschlussliste auf Get-ChildItem verwenden

$source_listephotos = Get-ChildItem $source -Recurse -exclude $exclude_list| where {$_.FullName} 
+0

Die where-Klausel ist dann veraltet, und die Liste von der RegEx-Variante '$ exclude_list = @ ('Imprimerie', 'otherfoler') zu unterscheiden' – LotPings

Verwandte Themen