Powershell 与 ImageMagick / VIPS 的集成
Powershell Integration with ImageMagick / VIPS
我正在尝试遍历磁盘上的文件列表,运行 使用 VIPS / ImageMagick 对每个文件执行命令,然后输出文件并将其移动到不同的目录。我似乎无法让命令协同工作。
为什么变量 $_Basefile 在此命令中不起作用?
VIPS 的单独命令
vips tiffsave input_file.tif output_file.tiff --args[...]
PowerShell 命令
ls | %{vips tiffsave $_BaseFile.tif $_BaseFile.tiff --compression jpeg --Q=90 --whateverelse }
更新: 下面正确标记的答案有效。为它不起作用的充分解释的原因竖起大拇指!正确的命令是:
GCI -File -Filter "*.tif" | %{vips tiffsave "$($_.FullName)" "$($_.BaseName).tiff" --compression jpeg --Q=90}
- 了解哪些 methods/properties 通过管道公开
你应该发出
Get-ChildItem -File|Get-Member
或短 ls -File|gm
- 您会看到
$_.FullName
和 $_.BaseName
您需要
所以尝试:
GCI -File -Filter "*.tif" | %{vips tiffsave "$($_.FullName)" "$($_.BaseName).tiff" --compression jpeg --Q=90}
ls、dir、gci 都是 Get-ChildItem
cmdlet
的别名
我正在尝试遍历磁盘上的文件列表,运行 使用 VIPS / ImageMagick 对每个文件执行命令,然后输出文件并将其移动到不同的目录。我似乎无法让命令协同工作。
为什么变量 $_Basefile 在此命令中不起作用?
VIPS 的单独命令
vips tiffsave input_file.tif output_file.tiff --args[...]
PowerShell 命令
ls | %{vips tiffsave $_BaseFile.tif $_BaseFile.tiff --compression jpeg --Q=90 --whateverelse }
更新: 下面正确标记的答案有效。为它不起作用的充分解释的原因竖起大拇指!正确的命令是:
GCI -File -Filter "*.tif" | %{vips tiffsave "$($_.FullName)" "$($_.BaseName).tiff" --compression jpeg --Q=90}
- 了解哪些 methods/properties 通过管道公开
你应该发出
Get-ChildItem -File|Get-Member
或短ls -File|gm
- 您会看到
$_.FullName
和$_.BaseName
您需要
所以尝试:
GCI -File -Filter "*.tif" | %{vips tiffsave "$($_.FullName)" "$($_.BaseName).tiff" --compression jpeg --Q=90}
ls、dir、gci 都是 Get-ChildItem
cmdlet