ファイルスタンプとスクリプト実行タイムスタンプを比較するコードがあります。値が異なる場合は機能しますが、値が同じ場合、コードはまだループから抜けません。この背後にある理由は、スクリプトの先頭にある setlocal enableDelayedExpansion ステートメントにあると考えています。
コードは filesstamp と datestamp の値を正しく出力しますが、if ロジックは正しく機能しません。
@ECHO off
setlocal EnableDelayedExpansion
ECHO !fileTimemod!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
echo filetimelength !strlength!
IF !strlength! EQU 1 (
SET fileTimemod=0!fileTimemod!
echo fileTimemod !fileTimemod!
)
set FileM=!filestamp:~0,2!
set FileD=!filestamp:~3,2!
set FileY=!filestamp:~6,4!
set filestamp=!FileY!!FileM!!FileD!!final!
echo datestamp !datestamp!
echo filestamp !filestamp!
set newTimestamp=!filestamp!
if "!datestamp!" gtr "!filestamp!" (
echo The file is older than the script execution time.
) else (
echo Read the new file
)
**ログ** **日付スタンプ 201310071449 ファイルスタンプ 201310071435** ファイルはスクリプトの実行時間より古いです。 24 遅延 カウンター値は 1 ディレクトリにファイルが存在するかどうかの確認 2013/10/07 02:49 午後 ファイル分 49 02 ファイルAMPM PM 2 ファイル時間の長さ 1 fileTimemod 2 結果 14 最終 1449 **日付スタンプ 201310071449 ファイルスタンプ 201310071449** ファイルはスクリプトの実行時間より古いです。 24 遅延
提案は大歓迎です。
前もって感謝します!