我有一个包含 3 个命令的 .bat 文件,它作为 3 个单独的命令(一次在命令行中输入 1 个)运行良好,但是当我将它们作为 3 行放在一个 bat 文件中时不起作用。
这是文件:
mogrify -format pgm ephemeral:*.png
pause
CALL forfiles /M *.pgm /C "cmd /c for %s in (@fname) do DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i %s.pgm -o %s.ppm
pause
mogrify -format png ephemeral:*.ppm
第一个命令运行正常,但命令行给我第二个命令的错误:
s.pgm was unexpected at this time
我用 fname 和 %s 进行 for 循环的原因是因为 debayer.exe 程序不将 @fname.pgm 理解为文件名,但它确实意识到这意味着引入一个字符串,所以它这样做了,然后 forfiles 识别@fname 并将其替换为当前文件名。
关于如何解决这个问题有什么想法吗?
我试过:
用
%%
代替%
在每个
前放置一个%
^
添加上面代码中的
CALL
在每行的末尾添加分号。
最佳答案
首先删除 CALL
它在这里没用,它会第二次开始解析,所以它会删除百分号。
并且将百分号加倍,因为它们将减半一次。
forfiles /M *.pgm /C "cmd /c for %%s in (@fname) do DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i %%s.pgm -o %%s.ppm
关于batch-file - 如何在 .bat 文件中识别 %s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18536649/