Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用mogrify将文件批处理到文件夹中_Windows_Batch File_Imagemagick - Fatal编程技术网

Windows 使用mogrify将文件批处理到文件夹中

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

我可以在批处理文件中使用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 %%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将接受不正确的斜杠。