批处理bat常用命令

前两天迷上了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
    为了查看其输出结果,可以分步将其执行结果输出到文件
keep calm and carry on
原文地址:https://www.cnblogs.com/geekvc/p/6139641.html