Windows 使用mogrify将文件批处理到文件夹中
我可以在批处理文件中使用mogrify使用imagemagick收缩一些图像,但设置目标目录时遇到问题Windows 使用mogrify将文件批处理到文件夹中,windows,batch-file,imagemagick,Windows,Batch File,Imagemagick,我可以在批处理文件中使用mogrify使用imagemagick收缩一些图像,但设置目标目录时遇到问题 @ECHO OFF SET scriptdir=%~dp0 cd /d %imagedir% SET tb="thumbs" IF NOT EXIST "%imagedir%"/%tb% MKDIR "%imagedir%"/%tb% FOR %%a in (*.tif) do ( mogrify -resize 42x42 -format jpg -quality 100 %%a move
@ECHO OFF
SET scriptdir=%~dp0
cd /d %imagedir%
SET tb="thumbs"
IF NOT EXIST "%imagedir%"/%tb% MKDIR "%imagedir%"/%tb%
FOR %%a in (*.tif) do (
mogrify -resize 42x42 -format jpg -quality 100 %%a
move %%a %imagedir%/%tb%
)
上面的脚本满足了我的要求,但我不得不使用move命令将图像放置在那里,而不是在那里创建它们。只需将
-path XYZ
添加到mogrify
命令中,即可获得ImageMagick将输出文件写入目录XYZ
。例如:
mkdir results
mogrify -path results -resize ... inputfile.jpg
尽管如此,mogrify
的要点是,您不需要循环,只需一次完成所有文件:
mogrify -path results -format jpg -resize 42x42 *.tif
使用选项
-写入文件名
,记录为:将图像写入此文件
mogrify -resize 42x42 -format jpg -quality 100 -write %imagedir%\%tb%\%%a %%a
我使用
%imagedir%\%tb%\%a
来完全指定输出文件名,并将斜杠改为反斜杠。对于(*.tif)中的%%a,do(mogrify-路径拇指-调整大小42x42-格式jpg-质量100%%a)似乎什么都不做。您是先创建拇指
子目录的吗?另外,您使用的是什么版本?首先检查创建目录。ImageMagick版本6.9.3请仅使用单个文件进行尝试。i、 e.不在<代码>循环中,也不在批处理脚本中,只需在一个文件中键入它,以确保它工作。这在没有循环的情况下工作-感谢headsup。-虽然图像非常小(请看您故意的打字),但mogrify.exe:无法打开图像“/thumbs”:权限被拒绝@error/blob.c/OpenBlob/2702。为什么对批处理文件和使用反斜杠(“\”)的窗口使用正斜杠(/
)?正斜杠在我的经验中几乎在任何地方都能正常工作,回到DOS2.x早期。由于您使用的是批处理文件,我假设您使用的是Windows。但是您已经编写了所有使用正向斜杠的路径。Windows使用反斜杠来分隔路径。我正在运行Win 7,它允许双向斜杠,或者看起来cd/Windows-->C:\Windows>并不意味着它是正确的,或者Win32版本的Mogrify将接受不正确的斜杠。