Есть ли способ сократить эту строку Powershell? (стенография)

Есть ли способ сократить эту строку Powershell? (стенография)

Просто хочу узнать, знает ли кто-нибудь способ сократить эту строку PowerShell:

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

Строка в этом коде:

$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

Скрипт предназначен для поиска в папке ($Temp) любых файлов с расширением .jpg.или.png, И которые имеютобаслова "это" и "то" в имени файла. Если он находит совпадение, он перемещает файл в папку назначения ($Images)

Таким образом, если в "F:\Temp-Images" есть файл с именем "this-that.png", он будет перемещен в "F:\Images\".

Я новичок в PowerShell, поэтому я собрал код выше с помощью поиска в Google. Я не знаю, хорош ли мой синтаксис или нет, но он работает для меня. Мне просто интересно, есть ли способ сократить код. Например, есть ли способ сократить это?:

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

Спасибо!

решение1

Шортить как можно больше становится загадочным ;-)

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

Для проверки я бы добавил -WhatIfили -Confirmк Move-Item

Связанный контент