我有一个日常进程,它会从其他进程创建的文件中生成一些 zip 文件。我需要创建一个每日日志文件,该文件指示找到的每个 zip 文件的一个特定文件的内容的时间戳。
我创建了以下批处理脚本,它昨天似乎在我的测试系统上工作,但今天不再,不知道为什么......
set VersionDirectory=C:\Test\VersionX\
set ResultOutputFile=C:\Test\LogFile.txt
for /f %%f in ('dir /b %VersionDirectory%\Installable\Packages\pattern*.zip') do (
mkdir %temp%\%%f\
unzip -extract -dir %VersionDirectory%\Installable\Packages\%%f %temp%\%%f\ > nul
for %%a in (%temp%\%%f\InstallScript.xml) do set InstallScriptXMLDate=%%~ta
rmdir /s /q %temp%\%%f\
echo %%f [package from %InstallScriptXMLDate%] >> %ResultOutputFile%
)
该文件应该做什么的简短摘要:
- 循环遍历 C:\Test\VersionX\ 目录中的每个 pattern*.zip 文件
- 将此文件解压缩到 %temp%\%%f 目录(其中 %%f 是文件名)
- 获取 %temp%\%%f\InstallScript.xml 的时间戳并将其放入 %InstallScriptXMLDate% 变量中
- 删除 %temp%\%%f 目录
- 将文件名 (%%f) 和时间戳 (%InstallScriptXMLDate%) 回显到日志文件中
截至目前,日志文件只包含文件名,后跟字符串 '[package from ]' 字符串,但缺少实际的日期时间戳
zip文件的解压缩和删除工作完美无缺,只是没有设置时间戳。