.bat 文件:如果主命令启动后文件被修改,则执行命令

.bat 文件:如果主命令启动后文件被修改,则执行命令

我有一个 .bat 文件执行几个命令:

  1. 如果自上次编译以来做了一些修改,则编译文档并将pdflatex其外部化为.pdf 文件tikzpicture
  2. 在当前目录中、所有子目录中、这些子目录中的所有文件上执行以下 .bat 文件:
  • 如果是.pdf文件,则执行pdftk解压为.txt文件
  • 使用以下命令从 .txt 文件中提取超链接的位置extractURIs.pl

第二个.bat 文件的代码是:

for /d %%i in (%cd%\*) do ( cd "%%i" &  for %%f in (*.pdf) do pdftk %%f output Uncompressed%%~nf.txt uncompress && .\extractURIs.pl %%i %1 Uncompressed%2)
  1. 使用步骤 1 中编译的 .pdf 文件中的图像编译一个新文档,pdflatex并添加步骤 2 中创建的 .txt 文件中的链接。

就其本身而言,这个解决方案运行良好,但执行时间非常长,这是可以避免的:如果在tikzpicture第一步中没有修改,则现有的.pdf 文件不会被修改,并且步骤 2 只能针对修改日期晚于 main.bat 文件执行开始日期的文件执行。

我怎么能够:

  1. 获取主 .bat 文件开始执行的时间(日期和时间),并将其作为参数传递给第二个 .bat 文件
  2. 修改给定的代码以便仅在执行开始时间后修改/创建do (...)文件时执行?%%f

我在 Windows 10 上对batch

相关内容