PowerShell 脚本不扩展字符串变量?

问题描述 投票:0回答:1

我正在编写一个简短的 PowerShell 脚本:

$imgFolder = "C:\Users\Joe\Desktop\New folder\Links\"
$images = "C:\Users\Joe\Desktop\New folder\*"
convert -path $imgFolder -format jpg -colorspace Gray -quality 70 $images

但是,我收到错误:

convert -path $imgFolder -format jpg -colorspace Gray -quality 70 $images
convert.exe: UnableToOpenBlob 'folder\*': No such file or directory @ error/blob.c/OpenBlob/3496.
convert.exe: NoDecodeDelegateForThisImageFormat `' @ error/constitute.c/ReadImage/562.

在错误的第一行,PowerShell 似乎没有将变量扩展为其值,而是显示变量名称。

我的 PowerShell 脚本做错了什么?

我在 Windows 11 上使用 PowerShell 版本 5.1.22621。

powershell powershell-5.1
1个回答
0
投票

PowerShell 在将 $images 变量传递给 convert 命令时似乎没有正确扩展它。此问题可能是由于 PowerShell 处理变量中通配符扩展的方式造成的。

您可以尝试使用 Get-ChildItem cmdlet 获取与通配符模式匹配的文件列表,然后将其传递给转换命令。以下是修改脚本的方法:

$imgFolder = "C:\Users\Joe\Desktop\New folder\Links\"
$images = Get-ChildItem "C:\Users\Joe\Desktop\New folder\*" -Filter "*.jpg"
convert -path $imgFolder -format jpg -colorspace Gray -quality 70 $images

此脚本将检索指定文件夹中的所有 .jpg 文件并将它们传递给 convert 命令。根据需要调整过滤器(-过滤器“*.jpg”)以匹配您要处理的文件扩展名。

© www.soinside.com 2019 - 2024. All rights reserved.