Erstellungsdatum überprüfen
Hallo Forum,
wie kann ich das Erstellungsdatum einer Datei herausfinden ??
Möchte folgendes machen:
1. Prüfung ob die Datei "Test.txt" vorhanden
2. falls Ja ob sie heute erstellt wurde.
3. falls Ja - Abfrage was tun.
4. falls Nein - "test2.bat" starten
Suche seit einer Weile im Forum und habe auch Teilösungen gefunden die ich nur leider nicht umsetzen kann
z.B.:
Datum einer Datei mit aktuellem Datum per Batch vergleichen --> Datum einer Datei mit aktuellem Datum per Batch vergleichen
Habe nur keine Ahnung von for%% bzw. findstr.
Vielleicht kann mir jemand eine Hilfestellung geben bzw. mir das erklären.
Gruß Klaus
wie kann ich das Erstellungsdatum einer Datei herausfinden ??
Möchte folgendes machen:
1. Prüfung ob die Datei "Test.txt" vorhanden
2. falls Ja ob sie heute erstellt wurde.
3. falls Ja - Abfrage was tun.
4. falls Nein - "test2.bat" starten
Suche seit einer Weile im Forum und habe auch Teilösungen gefunden die ich nur leider nicht umsetzen kann
z.B.:
Datum einer Datei mit aktuellem Datum per Batch vergleichen --> Datum einer Datei mit aktuellem Datum per Batch vergleichen
Habe nur keine Ahnung von for%% bzw. findstr.
Vielleicht kann mir jemand eine Hilfestellung geben bzw. mir das erklären.
Gruß Klaus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167386
Url: https://administrator.de/forum/erstellungsdatum-ueberpruefen-167386.html
Ausgedruckt am: 23.12.2024 um 23:12 Uhr
9 Kommentare
Neuester Kommentar
Hallo Klaus,
könnte so gehen:
Der Parameter
Dass das ganze nur mit NTFS-Partitionen funktioniert, dürfte klar sein.
Gruß
Friemler
könnte so gehen:
@echo off
setlocal
set "FilePath=."
set "File=test.txt"
if not exist "%FilePath%\%File%" exit /b
for /f %%d in ('dir /t:c "%FilePath%\%File%" ^| findstr /i /c:"%File%"') do set "FileCreationDate=%%d"
if /i "%FileCreationDate%" neq "%date%" goto :FileIsOld
set /p "Action=Was nun? "
::
::
exit /b
:FileIsOld
call "test2.bat"
Der Parameter
/T:C
des DIR
-Befehls liefert das Erstellungsdatum von Dateien. FINDSTR
sucht die Zeile der Ausgabe von DIR
, die den gesuchten Dateinamen enthält, Groß-/Kleinschreibung ist dabei egal. Das Datum einer Datei steht in der Ausgabe von DIR
am Zeilenanfang, danach kommen Leerzeichen, das Datum ist also das erste Token für die FOR
-Schleife und wird der Laufvariablen %%d
zugewiesen. Innerhalb der Schleife wird %%d
der Variablen FileCreateionDate
zugewiesen. Wenn deren Inhalt nicht mit dem Inhalt der DATE
-Variablen übereinstimmt (den Vergleich kann man so machen, da die Einstellungen für das Datumsformat in der Systemsteuerung sowohl die DATE
-Variable als auch die Ausgabe von DIR
beeinflussen), wird zum Label FileIsOld
gesprungen, wo das Batchfile aufgerufen wird. Wenn die Datei am aktuellen Tag erstellt wurde, landet man also bei der Abfrage Was nun?
(ich hoffe, ich habe das richtig verstanden). Zwischen der Abfrage und dem EXIT /b
dann weiteren Code einfügen.Dass das ganze nur mit NTFS-Partitionen funktioniert, dürfte klar sein.
Gruß
Friemler
Hallo Klaus,
ist es denn so schwer, einfach mal
Das FAT-Dateisystem kennt nur ein Dateidatum, das der letzten Änderung. Nur NTFS protokolliert drei Datumswerte (Erstellung, Änderung, letzter Zugriff).
Gruß
Friemler
ist es denn so schwer, einfach mal
SET /?
in einem Konsolenfenster einzugeben und mal ein bisschen mit dem Befehl rumzuexperimentieren?Das FAT-Dateisystem kennt nur ein Dateidatum, das der letzten Änderung. Nur NTFS protokolliert drei Datumswerte (Erstellung, Änderung, letzter Zugriff).
Gruß
Friemler
Hallo Klaus,
um auf die nachgeschobenen Fragen einzugehen:
Gruß
Friemler
um auf die nachgeschobenen Fragen einzugehen:
- Was meinst Du denn nun mit "Dateidatum"?
- Die
Enter
-Taste kann man nicht separat abfragen. Du kannst aber vor demset /p "Action=Was nun? "
die VariableAction
aufJ
setzen. Wenn der Benutzer nurEnter
drückt, wird der Inhalt vonAction
nicht verändert, enthält dann also immer nochJ
. Das kannst Du dann durchif /i "%Action%" equ "J"
abfragen. Durch den Parameter/i
beimIF
wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.
Gruß
Friemler
Moin Männers und happy father's day
Ich will mich ja nicht reindrängeln und bei Friemler sind wir alle in sehr guten Batchhänden!
Ich möchte nur eine Lösung in VBS anzeigen, falls es andere interessiert
Sozusagen als Männertagszugabe
Viele Grüße und ein schönes langes Wochenende
Tsuki
Ich will mich ja nicht reindrängeln und bei Friemler sind wir alle in sehr guten Batchhänden!
Ich möchte nur eine Lösung in VBS anzeigen, falls es andere interessiert
MyFile = "C:\MeineDatei.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists (MyFile) then
Set objFile = objFSO.GetFile(MyFile)
Wscript.Echo "Date created: " & objFile.DateCreated
Wscript.Echo "Date last accessed: " & objFile.DateLastAccessed
Wscript.Echo "Date last modified: " & objFile.DateLastModified
End If
Viele Grüße und ein schönes langes Wochenende
Tsuki