Top-Themen

Aktuelle Themen (A bis Z)

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, 3532 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 ..
Ähnliche Inhalte
Batch & Shell
Datein nach Erstellungsdatum in Unterornder verschieben
gelöst Frage von xyxy-yxBatch & Shell20 Kommentare

Hallo, ich möchte alle Dateien nach Erstellungsdatum in datumbenannte Unterordner kopieren und eventuell diesen auch erstellen, wenn er nicht ...

Batch & Shell
Datei nach Erstellungsdatum verschieben
Frage von Kugelschreiber1Batch & Shell2 Kommentare

Hallo, ich möchte über eine Batch-Datei Dateien, die älter als 20 Tage sind, in einen anderen Ordner verschieben. Dabei ...

Batch & Shell
Erstellungsdatum vor jede Zeile einer Textdatei schreiben
gelöst Frage von freakonaleashBatch & Shell5 Kommentare

Hallo zusammen, ich habe einen Ordner mit ganz vielen Textdateien. Ich bräuchte eine Batch, die in jede Datei vor ...

Batch & Shell
Batch zum verschieben von Ordnern anhand des Erstellungsdatums
Frage von AcJokerBatch & Shell4 Kommentare

Hallo, ich würde gerne mittels Batch Ordner verschieben, und zwar in neue Ordner die dem Monat der Erstellung der ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...