我想创建一个batch.bat
可以执行如下的批处理文件
batch.bat output PDF PNG JPG EPS
生产output.list
包含
filename1.pdf
filename2.pdf
filename3.pdf
filename4.pdf
filename1.png
filename2.png
filename3.jpg
filename4.eps
请注意,前两个参数是唯一的强制参数。我的努力如下,但我认为它使用了一种野蛮的编程技术,因为%1
它用于准备一个新的输出文件,并且不可避免地在第一次迭代中再次使用它,它什么都不做。
rem batch.bat
echo off
rem %1 represents the output file name
rem the remaining args represent file extension
dir /b *.%1 > %1.list
for %%x in (%*) do (dir /b *.%%x >> %1.list)
如何巧妙地创建一个 DOS 批处理文件,该文件生成一个输出文件,其中包含批处理参数中指定的文件列表?
编辑:
我需要批处理文件,因为它将从以下代码中调用。
\documentclass{article}
\usepackage{graphicx}
\newread\myfile
\newcount\TotalFiles
\AtBeginDocument
{
\immediate\write18{IterateFiles.bat \jobname\space pdf png jpg eps}
\openin\myfile=\jobname.list\relax
}
\AtEndDocument
{
\closein\myfile
}
\begin{document}
\makeatletter
\loop
\read\myfile to \mydata
\unless\ifeof\myfile
\filename@parse{\mydata}
\section*{\mydata}
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{\filename@base}
\advance\TotalFiles1\relax
\repeat
\makeatother
\section*{Summary}
There are \the\TotalFiles\ files in total.
\end{document}