PowerShell与ImageMagick/VIPS的集成
问题描述:
我想通过磁盘上的文件列表进行迭代,使用VIPS/ImageMagick为每个文件运行命令,然后输出文件并将其移至不同的目录。我似乎无法让这些命令一起工作。PowerShell与ImageMagick/VIPS的集成
为什么变量$ _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}
答
- 要了解哪些方法/属性通过管道 暴露你应该发出
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的所有别名
LotPings明白了。更新了上面的问题以显示答案。 – Eris