¿Alguna forma de acortar esta línea de Powershell? (taquigrafía)

¿Alguna forma de acortar esta línea de Powershell? (taquigrafía)

Solo quiero ver si alguien conoce alguna forma de acortar esta línea de PowerShell:

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

La línea está en este código:

$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

El script está destinado a buscar en una carpeta ($Temp), encontrar cualquier archivo con la extensión .jpgo.png, Y que tienenamboslas palabras "esto" y "aquello" en el nombre del archivo. Si encuentra una coincidencia, mueve el archivo a la carpeta de destino ($Images)

Entonces, si hay un archivo en "F:\Temp-Images" llamado "this-that.png", se moverá a "F:\Images\".

Soy nuevo en PowerShell, así que compilé el código anterior mediante búsquedas en Google. No sé si mi sintaxis es buena o no, pero me funciona. Me pregunto si hay alguna manera de acortar el código. Por ejemplo, ¿hay alguna forma de acortarlo?:

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

¡Gracias!

Respuesta1

Acortar tanto como sea posible se vuelve críptico ;-)

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

Para probar, agregaría -WhatIfo -Confirmmovería elemento

información relacionada