有什么方法可以缩短此 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,并且具有两个都文件名中包含单词“this”和“that”。如果找到匹配项,它会将文件移动到目标文件夹 ($Images)

因此,如果“F:\Temp-Images”中有一个名为“this-that.png”的文件,它将被移动到“F:\Images\”

我是 PowerShell 新手,所以我通过谷歌搜索拼凑了上述代码。我不知道我的语法是否很好,但它对我来说是可行的。我只是想知道是否有办法缩短代码。例如,有没有办法缩短这个?:

-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移动项目

相关内容