将xargs Bash命令转换为PowerShell?

Ana*_*tts 17 bash powershell

我有一个简单的Bash命令,可以使用ImageMagick在流量较低的网站上自动调整某些图像的大小 - 我想将其转换为PowerShell命令,因此我不必在我的网络服务器上安装Cygwin.任何人都可以在这里借给他们的PSh技能吗?

ls | xargs -I {} rconvert "{}" -resize 128x128\> "{}"
Run Code Online (Sandbox Code Playgroud)

zda*_*dan 26

最好的办法是将ls的输出管道传递给foreach-object命令行开关(%是foreach-object的别名):

ls | %{rconvert $_ -resize 128x128}
Run Code Online (Sandbox Code Playgroud)

编辑:ls将一个FileInfo或DirectoryInfo对象列表输出到管道上.要过滤掉DirectoryInfo对象,请使用where-object过滤器(?是别名):

ls | ?{-not $_.PSIsContainer} | %{rconvert $_ -resize 128x128}
Run Code Online (Sandbox Code Playgroud)

如果需要在命令中访问完整路径名,请使用FileInfo对象的FullName属性($ _本身将解析为$ _.名称只是文件名):

ls | ?{-not $_.PSIsContainer} | %{rconvert $_.FullName -resize 128x128}
Run Code Online (Sandbox Code Playgroud)

  • 您可能是对的,这更健壮,但该命令是从当前工作目录运行的,因此它应该可以工作。 (2认同)