我在 Windows 10 命令行中运行以下命令;
convert file.png %t-test.png
convert file.png '%t-test.png'
我得到以下文件;
%t-test.png
'%t-test.png'
file-test.png
我怎样才能正确地转义和生成预期结果?
更新
按照@DavidPostill 的建议尝试了一些其他的方法;
>convert file.png '\%t-test.png'
convert.exe: unable to open image `'\%t-test.png'': No such file or directory @ error/blob.c/OpenBlob/2702.
convert.exe: WriteBlob Failed `'\%t-test.png'' @ error/png.c/MagickPNGErrorHandler/1630.
此外,以下两种结果均被'%t-test.png'
写入;
convert file.png '%%t-test.png'
convert file.png '^%t-test.png'
答案1
我已经确定了以下解决方法,尽管它将输出限制为 cmd 中可用的变量操作,而不是可以使用ImageMagick 百分比转义。
FOR %a IN (*.png) DO convert "%a" "test-%~na%~xa"
根据这些批处理文件变量;
%~a expands %a removing any surrounding quotes (")
%~fa expands %a to a fully qualified path name
%~da expands %a to a drive letter only
%~pa expands %a to a path only
%~na expands %a to a file name only
%~xa expands %a to a file extension only