Gibt es eine Möglichkeit, diese Powershell-Zeile zu kürzen? (Abkürzung)

Gibt es eine Möglichkeit, diese Powershell-Zeile zu kürzen? (Abkürzung)

Ich möchte nur sehen, ob jemand eine Möglichkeit kennt, diese Powershell-Zeile zu kürzen:

gci -Recurse -path $temp | ? {(".jpg",".png" -eq $_.extension -and $_ -match 'this' -and $_ -match "that")} | mi -Destination ($Images) -Force

Die Zeile steht in diesem Code:

$Temp = "F:\Temp-Images"
$Images = "F:\Images\"
gci -Recurse -path $Temp | ? {(".jpg",".png" -eq $_.extension -and $_ -match 'this' -and $_ -match "that")} | mi -Destination ($Images) -Force

Das Skript soll in einem Ordner ($Temp) nach allen Dateien mit der Erweiterung .jpg suchen.oder.png, UND das habenbeidedie Wörter "dies" und "das" im Dateinamen. Wenn eine Übereinstimmung gefunden wird, wird die Datei in den Zielordner ($Images) verschoben.

Wenn sich also eine Datei in "F:\Temp-Images" mit dem Namen "this-that.png" befindet, wird sie nach "F:\Images\" verschoben.

Ich bin neu bei PowerShell, also habe ich den obigen Code über Google-Suchen zusammengestückelt. Ich weiß nicht, ob meine Syntax gut ist oder nicht, aber für mich funktioniert sie. Ich frage mich nur, ob es eine Möglichkeit gibt, den Code zu kürzen. Gibt es zum Beispiel eine Möglichkeit, dies hier zu kürzen?:

-and $_ -match 'this' -and $_ -match "that"

Danke!

Antwort1

So viel wie möglich zu shorten wird kryptisch ;-)

$Temp = "F:\Temp-Images\"
$Images = "F:\Images\"
ls $Temp -R -I *.jpg,*.png|?{$_.Name -match 'this.*that|that.*this'}|mi -D ($Images) -Fo

Zum Testen würde ich anhängen -WhatIfoder -ConfirmMove-Item

verwandte Informationen