【发布时间】:2019-03-16 17:34:16
【问题描述】:
我尝试使用 pandoc 将我的所有 wiki 导出到 .docx 文件中。所以我创建了一个 .bat 脚本。我有一个文件,其中包含我要导出的所有网址“liste_de_documents.txt”,每行包含一个字符串,例如:
hadoop:hadoop_-_hdfs_-_afficher_les_fichiers_avec_un_replica_inferieur_a_3
certificats:certificats_-_faq
我有这个变量:
set "url=http://localhost:8800/doku.php?id="
我尝试导出我的文档,我需要连接这两个变量,但我总是得到一个空变量 %downloadurl% 作为结果:
setlocal enabledelayedexpansion
for /F "tokens=*" %%A in (liste_de_documents.txt) do (
set downloadurl="%url%%%A"
ECHO %url%
ECHO %%A
ECHO %downloadurl%
::C:\Z_owncloud\Logiciels_portables\Logiciels_portables_installes\pandoc-2.3-windows-x86_64\pandoc.exe -f html "%url%%%A" -o "C:\Users\user\Downloads\EXPORT_AUTOMATIQUE_DE_LA_DOC_DU_WIKI\%downloadurl%.docx"
)
请问如何将我的变量 %url% 和 %%A 连接到 %downloadurl% 中?
问候,
一个。
【问题讨论】:
-
这个论坛上最常见的问题之一。见stackoverflow.com/questions/19121138/…
-
在这种情况下,延迟扩展并不是真正需要的。只要在每次迭代中 FOR 执行的命令块中当前使用
%downloadurl%的地方使用%url%%%A。并阅读Why is no string output with 'echo %var%' after using 'set var = text' on command line? 上的答案,解释set variable="value"和set "variable=value"之间的区别。后者通常是错误的,在发布的代码中也是如此。 -
同意@Mofi 的建议最适合这种情况。您应该查看我发布的链接,以了解您编码失败的原因。
-
并且不要使用双冒号作为括号代码块内的注释。您将在代码执行中得到不希望的结果。
标签: windows batch-file pandoc