【发布时间】:2017-10-27 10:30:43
【问题描述】:
下面是我的批处理脚本,它在 for 循环结束后没有执行该行。它不是 print echo end 或之后的行。 asciidoctor-pdf C:\Users\abc\Conversion_to_PDF\OutputFiles\*.adoc 行导致了它。但我不确定是什么问题。
@echo off
echo # Starting job
java -jar C:\Users\abc\Conversion_to_PDF\swagger2markup-cli-1.3.1.jar convert -i C:\Users\abc\Conversion_to_PDF\HIP-ProviderManagement-1.0.0-swagger.json -d C:\Users\abc\Conversion_to_PDF\OutputFiles
chdir /d C:\Users\abc\Conversion_to_PDF\OutputFiles
for %%A in (*.adoc) do (
asciidoctor-pdf C:\Users\abc\Conversion_to_PDF\OutputFiles\*.adoc
echo %%A
)
echo # end
C:\Users\abc\Downloads\sejda-console-3.2.3\bin\sejda-console merge -f C:\Users\abc\Conversion_to_PDF\OutputFiles\*.pdf -o C:\Users\abc\Conversion_to_PDF\OutputFiles\merged.pdf
【问题讨论】:
-
评论
@echo off并重新运行批处理文件,然后查看您在控制台上看到的错误。您可能想在问题中将它们发布在这里。 -
我这样做了,但控制台上没有出现错误。它只是执行到 for 循环结束,就是这样。
-
我想
asciidoctor-pdf哪个 Windows 命令解释器在当前目录或环境变量PATH中列出的任何目录中找到并且具有在环境变量PATHEXT中列出的文件扩展名具有文件扩展名 @ 987654327@或.cmd,即执行文件为批处理文件。在这种情况下,您需要命令 CALL 从批处理文件中调用批处理文件。在 cmd 提示窗口中运行call /?寻求帮助。提示:使您的编码工作更轻松,并始终指定从批处理文件中执行或调用的文件,其中还包括文件扩展名。 -
顺便说一句:你运行一个 FOR 循环来为每个 *.adoc 文件做一些事情,但是传递给
asciidoctor-pdf一个带有通配符模式的文件夹路径,而不是当前带有完整路径的 *.adoc 文件名。这没有多大意义。所以很可能 FOR 循环应该是for %%A in (*.adoc) do call asciidoctor-pdf.bat "%%~fA"或for %%A in (*.adoc) do asciidoctor-pdf.exe "%%~fA"取决于asciidoctor-pdf的真正含义。 -
这是一个 bat 文件,我在批处理脚本中添加了 .bat 扩展名,但它仍然是一样的。我也试过“%%~fA”但没有任何变化。添加更多建议?我没主意了!如何将其更改为 while 循环?
标签: java batch-file asciidoctor-pdf