【发布时间】:2014-08-13 23:38:45
【问题描述】:
我想在多个 .tex 文件上运行 pdflatex.exe,所有文件都以某个短语开头,我希望在进程开始之前得到提示。
我该怎么做?
我要处理的文件是这样命名的:
Chap01S01SS01_Description_Name_Whatever.tex
所以所有的名字都以:
Chap01
Chap02
and so forth...
所有名称以.tex结尾。
显然,章节和章节的数字会有所不同。这就是为什么我想通过提示让自己变得容易:如果我只想运行第 3 章中第 2 节的文件,我会运行这些文件,在某些时候我想重新生成所有第 4 章和第 5 章的文件……等等。
解决方案
@ECHO OFF
SETLOCAL
SET "sourcedir=D:\files\"
SET /p mask="Which .tex-files?"
PUSHD "%sourcedir%"
FOR /f "tokens=1*delims=" %%a IN (
'dir /b /a-d "%mask%*.tex" '
) DO (
pdflatex.exe -interaction=nonstopmode --shell-escape "%%a" any other parameters perhaps containing "%%~na"
)
POPD
GOTO :EOF
完整的功劳归于Magoo,我刚刚添加了参数-interaction=nonstopmode --shell-escape 以用于pdflatex。如果您知道关于 TikZ/pgfplots 的“外部化”代表什么,请使用它,否则删除 --shell-escape。
奖励 只需复制文件并写入 lualatex.exe 而不是 pdflatex.exe 即可获得巨大的图形。请注意,您的序言必须相应地组织。
【问题讨论】:
-
示例会很好 - 文件要处理和文件要排除
-
@Magoo 感谢您的评论。编辑了操作。 HTH?
标签: batch-file command-line pdflatex