corraggiouno
Goto Top

Abfrage des Dateidatums mit Batch-Script

Hallo,

kann mir jemand sagen wie ich mit Hilfe eines Batch Scriptes das Datum einer Datei abfrage?

Content-Key: 116171

Url: https://administrator.de/contentid/116171

Printed on: April 24, 2024 at 14:04 o'clock

Member: bastla
bastla May 15, 2009 at 13:09:36 (UTC)
Goto Top
Hallo Corraggiouno!

Falls das Änderungsdatum gemeint sein sollte, an der Kommandozeile etwa so:
for %i in ("D:\Die Datei.txt") do @echo %~ti
- in einem Batch natürlich jeweils mit doppelten %-Zeichen.

Grüße
bastla
Member: Corraggiouno
Corraggiouno May 15, 2009 at 13:40:00 (UTC)
Goto Top
ich habe schon ein vordefiniert Batch-Script:
@echo off
cls
REM -----------------------------------------------------------------------------------
REM 1. Schritt: Überprüfe, ob das Programm schon installiert wurde
if EXIST "%PROGRAMFILES%\Adobe\Reader 9.0\Reader\AcroRd32.exe" ( GOTO Ende ) ELSE ( GOTO Installieren )


:Installieren

echo Produkt : Acrobat Reader
echo Version : v. 9.1
echo Pfad : \\Software\Acrobat Reader 9.1\
echo.
echo Username : %Username%
echo Installiert am : %date%, um %time%
echo.
echo 1. Allgemeines
echo ============================
echo.
echo.

echo 2. Installation
echo ============================

echo 2.1 Installation läuft ....

echo Acrobat Reader v9.1 wird installiert ... bitte warten.
msiexec /i "\\Software\Acrobat Reader 9.1\AcroRead.msi" TRANSFORMS="\\Software\Acrobat Reader 9.1\AcroRead.mst" /qb
REM transforms ist dafür da, dass der Benutzer nicht immer auf weiter weiter klicken muss!!
REM qb = quiet, b=einfache Benutzeroberfläche
echo.
echo Installation beendet
echo.

:Ende
echo Ende


wo bau ich diese zeile ein? Adobe Reader 9.0 ist bisher auf den Clients installiert. Und unter C:\Programme\Adobe\Reader 9.0\Reader liegt die Datei AcroRd32.exe mit dem Datum 10.10.2008. Die neue Version von Adobe Reader 9.1.0 besitzt die gleiche Pfadbezeichnung aber ein anderes Datum, nämlich 27.02.2009.
Nun möchte ich eben die Abfrag so definieren das wenn das Datum älter als der 27.02.2009 ist, installiere Adobe Reader 9.1.0.
Member: Biber
Biber May 15, 2009 at 15:55:26 (UTC)
Goto Top
Moin Corraggiouno,

wenn Du so nett wärest, mal die von bastla gepostete Zeile
for %i in ("D:\Die Datei.txt") do @echo %~ti
...vielleicht noch etwas verkürzt auf
>for /d %i in (.) do @echo %~ti
15.05.09 15:11
... am CMD-Prompt einzugeben, dann wüssten wir wenigstens, welches Datumsformat auf DEINEM Rechner eingestellt ist.

Wenn Du dann noch sagen könntest: "Ja hey, auf allen Rechnern, auf denen ich ruminstallieren soll ist genau DIESES Datumsformat auch eingestellt!"...
dann könnten wir es mit Batchmitteln als String vergleichen.
Vorausgesetzt Du ermittelst noch wahlweise
  • den exakten angezeigten Wert der "alten" AcroRd32.exe incl der Zeit (dann ersetzen wir genau dann, wenn diese da ist)
  • oder den vollständigen angezeigten Wert für die "neue" AcroRd32.exe (die aber irgendwo noch im *.msi eingepackt ist)

Wenn Du mit Batchmitteln Datumsvergleiche machen willst (jünger/älter als) ist das ein abendfüllendes Thema - also würde ich mich für Deinen Fall auf die String-Prüfung "Datei-Datum ist gleich Text "10.10.08 ...." oder ist ungleich "27.02.09..." beschränken. Oder auf einen Vergleich der Dateigröße.

Grüße
Biber
Mitglied: 78632
78632 May 15, 2009 at 16:30:33 (UTC)
Goto Top
Zitat von @Biber:

Wenn Du mit Batchmitteln Datumsvergleiche machen
willst (jünger/älter als) ist das ein abendfüllendes
Thema ....


Verkürzen wir das Ganze doch mal auf ein paar Minuten und fangen mal ganz simpel so an:

@echo off & setlocal
for /f "tokens=3" %%d in ('reg query "hkcu\control panel\international" /v sShortDate') do set "dfmt=%%d"  
echo %dfmt%
pause

....

Der Rest ist dann mit 2-3 ifs auch noch zu lösen. face-smile
Member: Biber
Biber May 15, 2009 at 17:15:16 (UTC)
Goto Top
Der Rest ist dann mit 2-3 ifs auch noch zu lösen.
Jahaa, blablanick,

aber eben nur an einem erfüllten Abend, wenn er es das erste Mal versucht... face-wink

Und geringfügig schneller, wenn er das Datum mit dem ermittelten dd.MM.yy-Format in eine ANSI-Form yyMMdd bringt zum Kleiner/größer-Vergleich.

Grüße und schönes & baldiges Wochenende
Biber
Mitglied: 78632
78632 May 15, 2009, updated at Oct 18, 2012 at 16:38:12 (UTC)
Goto Top
Jahaa, blablanick,

aber eben nur an einem erfüllten Abend, wenn er es das erste Mal
versucht... face-wink

Man kann aber alles auch ganz anders (und v i e l einfacher) lösen, siehe
Tipp Trick 31

Grüße und sonniges Wochenende
blablanick