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

的别名