2

我编写了一个批处理文件,我用它来创建一个包含来自乳胶文件的缩写和引用的文件。它工作得很好。我在记事本++运行菜单中使用它。我的问题是我每次都必须从批处理文件中更改文件名。我想创建一个可以处理任何文件的通用文件。

这是我的工作脚本

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex thesis.tex
bibtex thesis
pdflatex thesis.tex
pdflatex thesis.tex
makeindex.exe thesis.nlo -s nomencl.ist -o thesis.nls
pdflatex thesis.tex
START "" thesis.pdf

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof

这是我的尝试

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex %2
bibtex thesis
pdflatex %2
pdflatex %2
makeindex.exe thesis.nlo -s nomencl.ist -o thesis.nls
pdflatex %2
START "" %2.pdf

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof

但是正如您所看到的那样,bibtex 和 makeindex.exe 命令行存在一个挑战,因为不应该为 bibtex 提供扩展名,因此引用记事本 ++ 中当前打开的文件的 %2 将不起作用。我也不知道如何指定全局 .nlo 和 .nls 以便 mnakeindex 可以找到与 tex 文件名对应的正确文件名。

我是从记事本++中批量执行此操作的,因为我无法使用文本生成命名法!

谢谢你的帮助

事实证明,将thesis批处理文件中的所有发生率替换为%2实际有效。我想我问得太早了,但如果有人有类似的问题,这里是解决方案:

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex %2.tex
bibtex %2
pdflatex %2.tex
pdflatex %2.tex
makeindex.exe %2.nlo -s nomencl.ist -o %2.nls
pdflatex %2.tex
START "" %2.pdf

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof
4

2 回答 2

0

我意识到您已经有了解决方案,但是还有另一种方法。

只需使用命令“basename”来删除结尾。

包括行

filebase=$(basename $2 .pdf)

在您的批处理文件中,然后“filebase”将是“thesis”,即使您将“thesis.pdf”作为输入($2酌情替换)。

于 2013-07-15T10:41:42.843 回答
0
:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
PUSHD %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex %2.tex
bibtex %2
pdflatex %2.tex
pdflatex %2.tex
makeindex.exe %2.nlo -s nomencl.ist -o %2.nls
pdflatex %2.tex
START "" %2.pdf
call:cleanup
goto:eof

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof
于 2015-10-02T22:25:02.353 回答