@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q36498808.txt"
FOR %%a IN ("%filename1%") DO ECHO %date%|FINDSTR /L "%%~ta" 2>NUL >nul
IF ERRORLEVEL 1 (ECHO failed) ELSE (ECHO succeeded)
SET "filename1=my.7z"
FOR %%a IN ("%filename1%") DO ECHO %date%|FINDSTR /L "%%~ta" 2>NUL >nul
IF ERRORLEVEL 1 (ECHO failed) ELSE (ECHO succeeded)
SET "filename1=missing.7z"
FOR %%a IN ("%filename1%") DO ECHO %date%|FINDSTR /L "%%~ta" 2>NUL >nul
IF ERRORLEVEL 1 (ECHO failed) ELSE (ECHO succeeded)
GOTO :EOF
Da Sie nicht sh haben besitzen Sie uns das Format, in dem Sie Daten anzeigen - das Datum in einer dir
Auflistung oder das Datum in %date%
dann das oben genannte ist einfach ein Vorschlag.
Ich verwendete einfach bequeme Dateinamen zum Testen. Die Routine funktioniert für mich.
Der Kern des Verfahrens ist, dass, wenn %date%
ist Fri 08-04-2016
und die filetime ist 08-04-2016 10:43am
dann findstr
eine Übereinstimmung finden werden, als ob entweder das Datum-String oder die Zeitfolge durch die echo
geliefert wird, dann wird findstr
gesetzt Errorlevel 0 und wird errorlevel 1 oder 2 setzen, wenn die Datumszeichenfolge nicht übereinstimmt oder die Datei fehlt.
Sie müssten die genauen Minutae Ihrer Datumsanzeigen überprüfen, um festzustellen, ob sie in Ihrer Situation zuverlässig sind.
Ich bemerkte gerade, dass es etwas von meinem Pseudocode herausgenommen hat. Ich brauche es tatsächlich, um es in irgendeinem (beliebigen) numerischen Datumsformat mit HEUTE zu vergleichen. Wenn filedate = heute, dann tu etwas, sonst tu etwas anderes. wenn Datumsstempel von Datei1 = heutiges Datum usw. – getut