Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Erstellungsdatum überprüfen

Frage Entwicklung Batch & Shell

Mitglied: Klaus20

Klaus20 (Level 1) - Jetzt verbinden

02.06.2011 um 11:58 Uhr, 3456 Aufrufe, 9 Kommentare

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 --> http://www.administrator.de/index.php?content=128984

Habe nur keine Ahnung von for%% bzw. findstr.

Vielleicht kann mir jemand eine Hilfestellung geben bzw. mir das erklären.

Gruß Klaus
Mitglied: Friemler
02.06.2011 um 13:07 Uhr
Hallo Klaus,

könnte so gehen:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
set "FilePath=." 
06.
set "File=test.txt" 
07.
 
08.
 
09.
if not exist "%FilePath%\%File%" exit /b 
10.
 
11.
for /f %%d in ('dir /t:c "%FilePath%\%File%" ^| findstr /i /c:"%File%"') do set "FileCreationDate=%%d" 
12.
if /i "%FileCreationDate%" neq "%date%" goto :FileIsOld 
13.
 
14.
 
15.
set /p "Action=Was nun? " 
16.
:: 
17.
:: 
18.
exit /b 
19.
 
20.
 
21.
:FileIsOld 
22.
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
Bitte warten ..
Mitglied: Klaus20
02.06.2011 um 13:35 Uhr
Hallo Friemler,
klappt wunderbar nun kann ich dank Deiner Erklärung das Ganze ein wenig nachvollziehen. Die Betonung liegt allerdings bei ein wenig.
Könntest Du mir noch sagen wie ich bei was nun - Neu ausführen oder Verlassen einfügen kann ??
Wie geht das Ganze es unter FAT ??

Gruß
Klaus
Bitte warten ..
Mitglied: Friemler
02.06.2011 um 13:45 Uhr
Hallo Klaus,

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
Bitte warten ..
Mitglied: Klaus20
02.06.2011 um 14:13 Uhr
Hallo Friemler,
langsam komme ich vorwärts. Wie ermittle ich nur das Dateidatum ??

Habe mit dir /t:w das letzte Tzugriffsdatum ermittelt - mir würde allerdings auch das Dateidatum reichen.

Zur Ja Nein Abfrage:
Kann man die Enter Taste auch abfragen - z.B.: J ,j oder Enterfür JA bzw. N oder n für Nein ??


Gruß
Klaus
Bitte warten ..
Mitglied: Friemler
02.06.2011 um 14:30 Uhr
Hallo Klaus,

wenn Du damit das Datum der letzten Änderung meinst, lass den Parameter /t:c beim DIR-Befehl weg.

Gruß
Friemler
Bitte warten ..
Mitglied: Friemler
02.06.2011 um 15:10 Uhr
Hallo Klaus,

um auf die nachgeschobenen Fragen einzugehen:

  1. Was meinst Du denn nun mit "Dateidatum"?
  2. Die Enter-Taste kann man nicht separat abfragen. Du kannst aber vor dem set /p "Action=Was nun? " die Variable Action auf J setzen. Wenn der Benutzer nur Enter drückt, wird der Inhalt von Action nicht verändert, enthält dann also immer noch J. Das kannst Du dann durch if /i "%Action%" equ "J" abfragen. Durch den Parameter /i beim IF wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.

Gruß
Friemler
Bitte warten ..
Mitglied: TsukiSan
02.06.2011 um 15:12 Uhr
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
01.
MyFile = "C:\MeineDatei.txt" 
02.
 
03.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
04.
 
05.
If objFSO.FileExists (MyFile) then 
06.
  Set objFile = objFSO.GetFile(MyFile) 
07.
 
08.
  Wscript.Echo "Date created: " & objFile.DateCreated 
09.
  Wscript.Echo "Date last accessed: " & objFile.DateLastAccessed 
10.
  Wscript.Echo "Date last modified: " & objFile.DateLastModified 
11.
End If
Sozusagen als Männertagszugabe

Viele Grüße und ein schönes langes Wochenende
Tsuki
Bitte warten ..
Mitglied: Klaus20
02.06.2011 um 16:00 Uhr
Hallo Friemler,

juhu es läuft alles. Nochmals vielen Dank für Deine schnelle unkomplizierte Hilfe.
Die Entertaste habe ich bisher noch nicht hinbekommen aber vielleicht sehe ich morgen mehr.

Gruß
Klaus
Bitte warten ..
Mitglied: TsukiSan
02.06.2011 um 16:13 Uhr
Die Entertaste habe ich bisher noch nicht hinbekommen aber vielleicht sehe ich morgen mehr.
Dann fange neu an und mach 'ne neue Frage auf.
bei Batch etwas kompliziert, was du vor hast - du müßtest den Benutzer steuern

Gruss
Tsuki
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Entwicklung
gelöst Dateiname auf bestimme Zeichenfolge überprüfen? (8)

Frage von matzetto zum Thema Entwicklung ...

Windows 10
gelöst Windows 10 1607: Virenschutz überprüfen (7)

Frage von Hanuta zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...