我正在尝试将一些 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-ChildItem
cmdlet 显式执行通配:
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+确实对外部程序执行此自动通配。