我有一个简单的Bash命令,使用ImageMagick自动调整一些低流量网站上的图像大小 - 我想将其转换为PowerShell命令,以便我不必在Web服务器上安装Cygwin。有人可以在这里提供他们的PSh技能吗?
ls | xargs -I {} rconvert "{}" -resize 128x128\> "{}"
我有一个简单的Bash命令,使用ImageMagick自动调整一些低流量网站上的图像大小 - 我想将其转换为PowerShell命令,以便我不必在Web服务器上安装Cygwin。有人可以在这里提供他们的PSh技能吗?
ls | xargs -I {} rconvert "{}" -resize 128x128\> "{}"
您最好将ls的输出通过管道符号传递给foreach-object命令,就像这样(%是foreach-object的别名):
ls | %{rconvert $_ -resize 128x128}
编辑:ls命令在管道上输出FileInfo或DirectoryInfo对象的列表。要过滤掉DirectoryInfo对象,请使用where-object筛选器(?是别名):
ls | ?{-not $_.PSIsContainer} | %{rconvert $_ -resize 128x128}
如果你需要在命令中访问完整的路径名,使用 FileInfo 对象的 FullName 属性($_ 本身将被解析为 $_.Name,它只是文件名):ls | ?{-not $_.PSIsContainer} | %{rconvert $_.FullName -resize 128x128}