【问题标题】:Batch Script drag and drop folder convert images with ImageMagick批处理脚本拖放文件夹使用 ImageMagick 转换图像
【发布时间】:2012-06-13 04:20:49
【问题描述】:

首先,我尝试到处寻找,但没有成功。我没有经验,非常感谢任何帮助。我正在尝试编写一个脚本来将一个文件夹拖到一个批处理文件上,然后使用 ImageMagick 将该文件夹中的所有图像转换为 jpg。我可以看到很有可能在命令行上执行脚本,一切正常。但是拖动文件夹给我带来了问题。我可以将许多文件拖到脚本上,并且可以很好地转换:

convert %* %1.jpg

效果很好。我也可以拖动一个文件夹,它会转换里面的图片,但是重命名为文件夹的名称,上一级目录,像这样:

@set SOURCE=%1
convert %SOURCE%\* %SOURCE%.jpg

我想我需要一个 for 循环对文件夹中的每个文件执行转换。但是我遇到了问题。我不确定在哪里加上引号,使用什么变量,以及如何克服空格。我想像这样的事情......

for %%f in (%SOURCE%\*) do ( convert %%f "%SOURCE%\%%f.jpg" )

但是,是的,我不知所措。我正在尝试这个小项目,既是为了学习,也是为了帮助我爸爸快速转换他的大量照片。

【问题讨论】:

  • 哦不!有人回答了一个答案,但使用了递归,现在它已经消失了:(有没有人知道你将如何修改 Rodney 的脚本添加递归?对不起,如果我在错误的地方问这个问题。我知道这是 /R 开关,但可以不太明白……

标签: batch-file imagemagick batch-processing photos


【解决方案1】:

听起来 ImageMagick 可以接受多个输入参数和一个输出参数,但为了简化它一次只使用一个文件,请尝试以下操作。您的循环看起来正确,但下面的 ~ 更改将处理引号。

您可能还想将 %%a* 匹配更改为特定文件,这样您就不会捕获现有的 jpg 或非图像文件,例如对于 (%%a*.png %%a*.gif) 中的 %%f 做 ...

最后,在两个转换行前面添加一个“echo”,这样您就可以进行测试运行了。

@echo off

rem Loops through arguments. If a file converts it to a jpg.  If a directory
rem converts files in that directory to jpgs.  Assumes a program "convert".

set count=0
for %%a in (%*) do (
  if exist %%a (
    if exist %%a\ (
      rem Directory, loop through contents
      for %%f in (%%a\*) do (
        convert "%%f" "%%~a\%%~nf.jpg"
        set /a count+=1
      )
    ) else (
      rem File, just convert
      convert "%%~a" "%%~na.jpg"
      set /a count+=1
    )    
  ) else (
    echo Skipping non-existent %%~a
  )
)

echo Converted %count% files

pause

【讨论】:

  • 完美的罗德尼。也非常感谢脚本中的 cmets,帮助我理解。感谢您抽出宝贵时间提供帮助。
  • 也许也使用了powershell脚本。
【解决方案2】:

不是你想要的;这将在原始目录中创建一个新目录,以将修改后的照片保存到:

:: Create the new directory 
md %1\resized 

:: Resize and save the new version
for %%f in (%1\*.jpg) do ( convert "%%f" -thumbnail 800x800 "%1\resized\%%~nf.jpg" )

【讨论】:

  • 我没有正确阅读您的问题,我的代码仅读取 jpg 图像,然后在保存前调整它们的大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 2015-10-03
相关资源
最近更新 更多