@echo off if .%1.==.xe. goto XELATEXROUTE if .%1.==.pdf. goto PDFTEXROUTE if .%1.==.dpx. goto DPXROUTE if .%1.==.ps. goto PSROUTE if "%1"=="." goto PDFTEXROUTE if .%1.==.. goto NOARGS goto SingleArgs :XELATEXROUTE set SDengine=pdfxe goto CHECKARG :PDFTEXROUTE set SDengine=pdf goto CHECKARG :DPXROUTE set SDengine=pdfdvi goto CHECKARG :PSROUTE set SDengine=pdfps goto CHECKARG :CHECKARG if .%2.==.. goto NOARGS if not exist %~n2.tex goto NOEXIST set MAINFILENAME=%~n2 goto RUNME :SingleArgs set SDengine=pdf if not exist %~n1.tex goto NOEXIST set MAINFILENAME=%~n1 goto RUNME :NOEXIST echo The project file does not exist. echo Do you want to make a new file from template? set TMPFILENAME=%~n1 set /p NEWPROJ=[y/N] if .%NEWPROJ%.==.y. goto MakeNewFile if .%NEWPROJ%.==.Y. goto MakeNewFile goto NOARGS :MakeNewFile echo Enter your project file name without extension. set /p NewPrjName= if .%NewPrjName%.==.. set NewPrjName=%TMPFILENAME% echo \documentclass{oblivoir}>%NewPrjName%.tex echo \begin{document}>>%NewPrjName%.tex echo Starts here.>>%NewPrjName%.tex echo \end{document}>>%NewPrjName%.tex set MAINFILENAME=%NewPrjName% goto RUNME :NOARGS echo Usage : %0 (engine) projectname echo engine is one of echo xe = xelatex echo pdf = pdflatex (default. just a dot(.) is equivalent.) echo dpx = latex and dvipdfmx echo ps = latex, dvips and ps2pdf. echo When the engine isn't given, the first argument will be echo regarded as projectname. goto LASTFIN :RUNME if not exist %MAINFILENAME%.pdf goto MakeFirst :ReturnPoint start "" %MAINFILENAME%.tex kcpdfopen %MAINFILENAME%.tex 1 1 kcltxmk -silent -f -%SDengine% -pvc -pv- %MAINFILENAME% goto FIN :MakeFirst echo %MAINFILENAME%.pdf doesn't exist. echo So, I will make one. kcltxmk -%SDengine% %MAINFILENAME% pause goto ReturnPoint :FIN exit :LASTFIN