批处理文件发送当前文件夹作为带引号的参数

4

我有一个批处理文件用于转换图像,参数是带引号的字符串,而且在参数中包含引号的字符串已经被转义。不过,我想把当前路径 %CD% 也作为一个参数发送……但执行以下命令:

"C:\Program Files\GIMP 2\bin\gimp-2.8.exe"  -i -b "(python-fu-watermark-folder RUN-INTERACTIVE \"%CD%\" \"%CD%_watermarked\" \"C:/Documents and Settings/Jan/Desktop/watermarking/customEffectsWatermark.png\")"  -b "(gimp-quit 0)"

这个代码会输出:

C:\Documents and Settings\Jan\Desktop\watermarking\tester>"C:\Program Files\GIMP2\bin\gimp-2.8.exe"  -i -b "(python-fu-watermark-folder RUN-INTERACTIVE \"C:\Documents and Settings\Jan\Desktop\watermarking\tester\" \"C:\Documents and Settings\Jan\Desktop\watermarking\tester_watermarked\" \"C:/Documents and Settings/Jan/Desktop/watermarking/customEffectsWatermark.png\")"  -b "(gimp-quit 0)"

这很好,但是目录中的反斜杠是转义字符!因此,在执行插件时,我会得到一个转义的目录(我不想要那个):

WatermarkFolder-Warning: C:Documents and SettingsJanDesktopwatermarking ester
WatermarkFolder-Warning: C:Documents and SettingsJanDesktopwatermarking ester_watermarked
WatermarkFolder-Warning: files to be processed in total: 0

由于我无法控制路径,有没有一种方法可以避免转义字符的影响呢? 谢谢! Lode

1个回答

6

你尝试使用双重转义将变量值设置为%CD%吗?

像这样:

set mycd=%cd:\=\\%

在使用 %cd% 的地方,改用 %mycd%


在输入问题时,我正在考虑这个问题,但我不习惯使用批处理文件,并且在设置变量时愉快地输入了“=”前后的空格。啊!所以,非常感谢您向我展示,如果我想让它起作用,就不允许有空格 :) 它起作用了! - lode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接