我对powershell相当陌生,我有一个简单的问题。我希望将文件夹中所有颜色的tif转换为jpg,然后删除原始的tif。到目前为止,我只能循环遍历有色的$_.BaseName,但是在从转换命运的名字时有一个简单的问题。我的代码:
Get-ChildItem -Path ".\" -Filter *.tif | ForEach-Object { if ((magick identify -format "%[bit-depth]" $_.FullName) -ne 1) {magick convert $_.FullName $_.BaseName + ".jpg"} }这会导致以下每种颜色的起义都有一些错误:
转换:无法打开图像‘Image006’:没有这样的文件或目录@ error/blob.c/OpenBlob/3568。转换:此图像格式“@ error/constitute.c/ReadImage/741”没有解码委托。
如何使用basename为命令赋予目标文件名?
发布于 2022-08-10 12:15:55
分组运算符()
与其他语言一样,(...)用于覆盖表达式中的运算符优先级。例如:(1 + 2) / 3
因此,解决方案是将字符串连接操作封装在(...)中。
magick convert $_.FullName ($_.BaseName + ".jpg")..。这将导致PowerShell在调用magick之前对$_.BaseName + ".jpg"进行计算。
https://stackoverflow.com/questions/73305377
复制相似问题