他のプロセスによって作成されているファイルからいくつかの zip ファイルを生成する毎日のプロセスがあります。見つかった各 zip ファイルの 1 つの特定のファイルの内容のタイムスタンプを示す日次ログ ファイルを作成する必要があります。
次のバッチ スクリプトを作成しました。昨日はテスト システムで動作しているように見えましたが、今日は動作しません。理由はわかりません...
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 ファイルの解凍と削除は問題なく機能しています。タイムスタンプが設定されていないだけです。