如何在Windows上设置和使用Jpegtran

4

我是一名Windows用户,尝试使用jpegtran并没有找到实际访问该程序的方法。所有我发现的问题都从命令行开始,但是当我尝试复制命令时,我会收到以下错误:

在查看这个问题之后:

我尝试运行这些命令:

@echo none 
for /f "delims=" %%a in ('dir "*.jpg" /b /s /a-d') do (
echo processing "%%a"
"C:\Program Files\Image Optimization\jpegtran.exe" -optimize -progressive -copy none "%%a" "%%a.tmp"
move /Y "%%a.tmp" "%%a" >nul
)
pause

我收到了错误信息“%%a was not expected at this time.”
我的问题是如何设置图片、jpegtran.exe文件和命令提示符的文件夹结构,以便这个命令可以运行?

你上面的解决方案看起来格式正确 - 但它是一个批处理文件,你不能将其粘贴到命令提示符中。将代码保存在文本文件中,称之为 runjpg.bat 并在包含一些 jpg 文件的文件夹中启动它以进行测试。(避免将批处理文件命名为与命令相同的名称) - foxidrive
@foxidrive,谢谢。这个完美地运作了。请将其发布为答案! - Raphael Rafatpanah
2个回答

5
您上面的解决方案看起来格式正确,但它是一个批处理文件,您无法将其粘贴到命令提示符中。将代码保存在文本文件中,称之为runjpg.bat,并在包含一些jpg文件的文件夹中启动它以进行测试。(避免将批处理文件命名为已有命令的相同名称)

对于任何想知道的人,要运行 runjpg.bat,你只需要将它拖放到命令提示符中并按回车键即可。 - Raphael Rafatpanah

0

[已删除错误信息]

编辑:

抱歉,真的没看到问题!

这个批处理将会针对当前目录和子目录中每个找到的jpg文件做以下修正:

  • 创建一个优化后的文件(命名为.tmp)
  • 用创建的tmp文件替换原始文件。

我在这里唯一看到的要求是你必须在C:\Program Files\Image Optimization文件夹中有jpegtran.exe


这是要作为一行输入到命令行中还是要分开成多行? - Raphael Rafatpanah
我有以下文件夹结构:在C:\Program Files中创建一个名为Image Optimization的文件夹,并将jpegtran.exe文件和图像放入其中,然后从Image Optimization文件夹打开命令行。当作为一行运行脚本时,命令不会返回任何错误,但也不执行任何操作。 - Raphael Rafatpanah
我想我的问题在于我缺乏运行这样脚本的“基础知识”。您能否指点我去哪里学习如何做这种事情的基础知识? - Raphael Rafatpanah
没事了,那是因为我在别的地方删除了图片。我把图片放回去了,现在返回图像文件名。 - Raphael Rafatpanah
"tokens=*" 会移除读取文件名前导空格而导致的错误。"delims="并不像你所描述的那样做任何事情——它完全禁用分隔符并返回整个输入行。 - foxidrive
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接