调整仅在今天修改的缩小图像的大小

时间:2015-03-12 11:15:01

标签: batch-file dos mogrify

我正在尝试使用名为mogrify的ImageMagik工具获取以下命令以在Server 2003上运行。

  对于(.jpg,.png,.gif)中的%G,

执行forfiles / p“C:\ Images”/ s / m *%G -d 0 -c“cmd / c C:\ ImageMagick \ mogrify。 exe -resize 800x800 ^> -quality 80 -strip @path“

但是当mogrify工具针对找到的路径运行时,错误说调整大小arg无效。

  

mogrify.exe:InvalidArgument`80Ã╬0>': - resize @ error / mogrify.c / MogrifyImageCommand / 5754。

我认为问题与价值有关,而且它包含^>。 需要>符号来告诉工具只缩小宽度或高度,我认为需要^作为转义字符。

该命令独立运行,图像大小调整:

  

mogrify.exe -resize 800x800 ^> -quality 80 -strip“image1.jpg”

如果我删除调整大小的arg但是当然图像没有调整大小,该命令也可以工作:

  对于(.jpg,.png,.gif)中的%G,

执行forfiles / p“C:\ Images”/ s / m *%G -d 0 -c“cmd / c C:\ ImageMagick \ mogrify。 exe -quality 80 -strip @path“

我也尝试过使用双引号包装值并多次转义^,但似乎没有任何效果。

值得一提的是,我可以使用以下功能,但删除^并从调整大小值中添加引号。

  

cmd / c C:\ ImageMagick \ mogrify.exe -resize“800x800>” -quality 80 -strip image1.JPG


总结如何正确地将800x800>的调整大小值添加到以下命令?

  对于(.jpg,.png,.gif)中的%G,

执行forfiles / p“C:\ Images”/ s / m *%G -d 0 -c“cmd / c C:\ ImageMagick \ mogrify。 exe -resize 800x800 ^> -quality 80 -strip @path“

1 个答案:

答案 0 :(得分:2)

实际上,我认为问题是0x80正在从十六进制转换为ASCII。来自forfiles /?帮助消息:

  

要在命令行中包含特殊字符,请使用0xHH格式的字符的十六进制代码(例如,标签为0x09)。内部CMD.exe命令应以" cmd / c"。

开头

尝试将-resize 800X800^>中的X大写。