0

我正在尝试遍历磁盘上的文件列表,使用 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}
4

1 回答 1

1
  • 要了解通过管道公开哪些方法/属性,您应该发出一个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-ChildItemcmdlet的别名

于 2017-05-10T18:07:26.453 回答