前两天迷上了LaTeX,觉得使用批处理命令编译生成pdf比较方便
于是有了:
type main.tex | find "defusewhat{dvipspdf}"&& goto dvipspdf
type main.tex | find "defusewhat{dvipdfmx}"&& goto dvipdfmx
type main.tex | find "defusewhat{pdflatex}"&& goto pdflatex
type main.tex | find "defusewhat{xelatex}"&& goto xelatex
type main.tex | find "defusewhat{yap}"&& goto yap
:dvipspdf
del main_dvipspdf.pdf main.dvi main.ps
latex main.tex
bibtex main
latex main.tex
gbk2uni main.out
latex main.tex
dvips -G0 -ta4 main.dvi
ps2pdf main.ps main_dvipspdf.pdf
del *.aux *.bbl *.blg *.out *.thm *.toc *.lof *.fen *.toe *.lot *.ten *.log *.ps *.dvi *.loa /s
start main_dvipspdf.pdf
exit
:dvipdfmx
del main_dvipdfm.pdf main.dvi
latex main.tex
bibtex main
latex main.tex
gbk2uni main.out
latex main.tex
dvipdfmx -p a4 main.dvi
ren main.pdf main_dvipdfmx.pdf
del *.aux *.bbl *.blg *.out *.thm *.toc *.lof *.fen *.toe *.lot *.ten *.log *.ps *.dvi *.loa /s
start main_dvipdfmx.pdf
exit
:pdflatex
del main_pdflatex.pdf
pdflatex main.tex >> step1.txt
bibtex main >> step2.txt
pdflatex main.tex >> step3.txt
gbk2uni main.out >> step4.txt
pdflatex main.tex >> step5.txt
ren main.pdf main_pdflatex.pdf
del *.aux *.bbl *.blg *.out *.thm *.toc *.lof *.fen *.toe *.lot *.ten *.log *.synctex *.loa /s
start main_pdflatex.pdf
exit
:xelatex
del main_xelatex.pdf
xelatex main.tex
bibtex main
copy /b fixbbl.txt+main.bbl main2.bbl
del main.bbl
ren main2.bbl main.bbl
xelatex main.tex
xelatex main.tex
ren main.pdf main_xelatex.pdf
del *.aux *.bbl *.blg *.out *.thm *.toc *.lof *.fen *.toe *.lot *.ten *.log *.gz *.gz(busy)*.synctex *.loa /s
start main_xelatex.pdf
exit
:yap
del main.dvi
latex main.tex
bibtex main
latex main.tex
gbk2uni main.out
latex main.tex
del *.aux *.bbl *.blg *.out *.thm *.toc *.lof *.fen *.toe *.lot *.ten *.log *.loa /s
start main.dvi
exit
-
del *.aux /s
从当前目录及其所有子目录中删除所有的aux后缀文件。显示正在被删除的文件名。 -
ren main.pdf main_dvipdfmx.pdf
把main.pdf重命名为main_dvipdfmx.pdf -
start 1.jpg
表示用系统默认软件打开1.jpg这个图片 - start 1.pdf 表示用系统默认软件打开1.pdf这个文件
- start 不加参数表示打开一个新的cmd终端
-
exit 表示退出终端
-
type log.txt | find “2011-11-11” |find “Data”
显示log.txt文件中既含有2011-11-11也含有Data的行。 -
find /V /C “log.txt”
统计文件log.txt的行数 -
dir
无参数:查看当前所在目录的文件和文件夹。
/w:以紧凑方式(一行显示5个文件)显示文件和文件夹。 - dir /a /s /p
/a:查看包括隐含文件的所有文件。
/s:查看当前目录已经其所有子目录的文件和文件夹。
/p:以分页方式(显示一页之后会自动暂停)显示。
/ah:只显示出隐含文件。
|more:前面那个符号是“|”上面的那个,叫做重定向符号,就是把一个命令的结果输出为另外一个命令的参数。 -
more也是一个命令,dir /w |more
得到的结果和dir /w /p的结果是一样的。
其他的参数大家可以用:dir/?查看 -
type main.tex | find “defusewhat{dvipspdf}” && goto dvipspdf
如果在main.tex文件中查找到字符串”defusewhat{dvipspdf}”,执行程序段:dvipspdf -
pause没有指定暂停时间的功能。
-
指定暂停时间使用ping命令,
即: ping -n 30 127.1>nul
其中,30秒可以改为其他数值,代表希望要暂停的时间,可以修改。
另外,>nul也是非必要项,在这里只起屏蔽ping的执行结果的作用。 -
pdflatex main.tex >> step1.txt
- bibtex main >> step2.txt
- pdflatex main.tex >> step3.txt
- gbk2uni main.out >> step4.txt
- pdflatex main.tex >> step5.txt
为了查看其输出结果,可以分步将其执行结果输出到文件