我有以下脚本,可以将纵向图像移动到名为“肖像”的子文件夹。
它运行得很好,但前提是脚本位于与图像相同的文件夹中并从中执行。这意味着我必须将脚本复制到我的所有文件夹中,并为每个文件夹运行一次(很痛苦!)。
我如何修改脚本以便可以从父文件夹找到并执行它并递归任何图像子文件夹,例如:
Folder (script is here)
SubFolder1 (images are here)
SubFolder2 (images are here)
SubFolder3 (images are here)
And results in:
Folder
SubFolder1\portrait (portrait images are moved here)
SubFolder2\portrait (portrait images are moved here)
SubFolder3\portrait (portrait images are moved here)
脚本:
Add-Type -AssemblyName System.Drawing
$ImageList = Get-ChildItem "*.jp*g"
$LandscapePath = ""
$PortraitPath = "portrait"
md portrait
Foreach($ImageFile in $ImageList)
{
#Get the image information
$image = New-Object System.Drawing.Bitmap $ImageFile.Fullname
#Get the image attributes
$ImageHeight = $image.Height
$ImageWidth = $image.Width
#Close the image
$image.Dispose()
If($ImageWidth -lt $ImageHeight)
{
Move-Item -LiteralPath $ImageFile.FullName -Destination $PortraitPath -Force
}
}
我试过
$ImageList = Get-ChildItem "*.jp*g" -Recurse
但最终将子文件夹中的所有图像放入了父文件夹中的肖像文件夹中......
谢谢
(初始脚本感谢https://powershelladministrator.com/2021/09/20/move-images-based-on-dimension/ 。)