我无论如何也想不出我错过了什么。我有以下批处理文件:
当我从我的办公桌上对映射驱动器运行此批处理文件时,它运行良好
FOR /D /r %%G in ("*") DO pdftk "%%G\*.pdf" cat output "%%G\Report.pdf"
当我在服务器上运行完全相同的批处理文件时,映射驱动器所在的位置无法运行,这让我认为我遇到了语法问题
我只是不明白发生了什么,我的眼睛很难跟踪可能有什么不同。它不工作的服务器是 Windows 2003,而同一个批处理文件工作的桌面是 Windows 7。
答案1
FOR /D /r %%G in ("*") DO pdftk "%%G\*.pdf" cat output "%%G\Report.pdf"
尝试这个
FOR /D /r %%G in ("*") DO pdftk %%G\*.pdf cat output "%%G\Report.pdf"
我认为周围的引号"%%G\*.pdf"
使得 * 看起来像批处理命令的字母而不是通配符限定符。
抱歉,这已经过时了,但我刚刚发现它并使用了它。
答案2
问题似乎是您可以在命令的 set 部分进行通配符扩展,("*")
但命令参数"%%G\*.pdf"
没有得到扩展。我不确定为什么它在一台机器和另一台机器上的行为不一致。
由于您只想处理 pdf 文档,请移动通配符 * 使您的命令如下:
FOR /D /r %%G in ("*.pdf") DO pdftk "%%G" cat output "%%G\Report.pdf"