如何在 CLI 界面 (PowerShell) 中选择多个文件



我正在尝试将一些 gif 文件批量转换为动画 png 文件,但是,我的问题很清楚。如何将目录中的多个文件输入到 CLI 终端(我使用的是 PowerShell)?

我是一个初学者,所以我99%确定我在做一些愚蠢的事情。

我正在使用 gif 来动画 png 程序 (gif2apng) 当我放类似的东西时,它完美地工作

gif2apng -i file.gif -o output.png

我在该目录中有多个 GIF,因此,我使用了通配符

gif2apng -i *.gif

但是,我收到一个错误

Error: can't open the file '*.gif'

当我尝试选择多个图像(使用Google的程序img2webp)时,我遇到了这个确切的错误,因为没有像这样写所有名称

img2webp -lossy 1.png 2.png 3.png 4.png 5.png 6.png -o output.png

仅仅通过写作

img2webp -lossy *.png

请指导我

谢谢 苛刻

与 POSIX 兼容的 shell(例如类 Unix 平台上的bash)不同,Windows[1]上的 PowerShell执行通配 - 也就是说,它不会自动*.gif扩展为当前目录中具有扩展名.gif

因此,通配模式*.gif逐字传递给gif2apng,这似乎需要文字文件名,因此失败。

解决方案是让 PowerShell 使用Get-ChildItemcmdlet 显式执行通配:

gif2apng -i (Get-ChildItem *.gif).Name -o output.png
  • Get-ChildItem *.gif检索当前目录中具有扩展名.gif的所有项目(如果明确希望从匹配中排除目录,则可以添加-File开关),作为System.IO.FileInfo实例。

  • (...).Name返回它们的名称,并将它们作为单独的参数传递给gif2apng


[1] 但是,在类Unix平台(macOS,Linux)上,PowerShell(Core} 7+确实对外部程序执行此自动通配。

相关内容

  • 没有找到相关文章

最新更新