批处理bat常用命令
前两天迷上了LaTeX,觉得使用批处理命令编译生成pdf比较方便
于是有了:
type main.tex | find "\def\usewhat{dvipspdf}"&& goto dvipspdf type main.tex | find "\def\usewhat{dvipdfmx}"&& goto dvipdfmx type main.tex | find "\def\usewhat{pdflatex}"&& goto pdflatex type main.tex | find "\def\usewhat{xelatex}"&& goto xelatex type main.tex | find "\def\usewhat{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 “\def\usewhat{dvipspdf}” && goto dvipspdf
如果在main.tex文件中查找到字符串”\def\usewhat{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
为了查看其输出结果,可以分步将其执行结果输出到文件
keep calm and carry on