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 Datum und Uhrzeit von Logfiles auslesen

Mitglied: rabbit00

rabbit00 (Level 1) - Jetzt verbinden

12.04.2008, aktualisiert 19:14 Uhr, 6345 Aufrufe, 2 Kommentare

Ich bin an meinen ersten gehversuchen mit VBS oder Programieren überhaubt und stehe irgendwie auf den Schlauch.

Ich versuche eine einfache Liste zu erstellen. Datum, Uhrzeit, Pfad mit Dateiname. Bloss wie das Leben so spielt, hat eine der ausgelsenen Dateien die Uhrzeit 00:00:00. Was dazu führt, dass in dieser Zeile, die Uhrzeit fehlt. Ich hab mal etwas herrum gegoogelt, aber irgendwie, wird es recht schnell komplex. Ich wäre also Dankbar für eine einfach Antwort, die man ohne Studium versteht. Trozdem sollte natürlich soviel Information enthalten sein, dass ich den Fehler begreiffe und nicht nur weiss, wie ich ihn behebe.



01.
dim liste
02.
dim Pfad1
03.
ordner ="Z:\log\"
04.

05.
set fs = createobject("Scripting.FileSystemObject")
06.
Sub Listordner(ordner)
07.
Set ordner = fs.getfolder(ordner)
08.
For Each file In ordner.files
09.
Pfad1 = file.path
10.
set logbuch = fs.opentextfile("Z:\inhalt.txt", 8, true,0)
11.
Set fso = CreateObject("Scripting.FileSystemObject")
12.
Set f1 = fso.GetFile(Pfad1)
13.
li = ""
14.
li = li & f1.DateLastModified & " " & f1.Path & vbcr
15.
logbuch.writeline li
16.
logbuch.close
17.
Next
18.
End Sub
19.
Listordner ordner
20.
msgbox "Fertig", 64 , "Fertig"
Mitglied: bastla
12.04.2008 um 17:16 Uhr
Hallo rabbit00!

In VBS werden Datum und Uhrzeit zusammen gespeichert: das Datum als Tageanzahl vor dem Komma und die Uhrzeit als Bruchteil eines Tages hinter dem Komma - 18:00 wäre zB 0.75. Wenn ein solcher "kombinierter" Wert vor oder hinter dem Komma 0 enthält, wird er nur als Uhrzeit oder nur als Datum interpretiert (wie es bei der einen Datei passiert).

Um auch "00:00:00" auszugeben, kannst Du die entsprechende Formatierungsfunktion verwenden, was in Deinem Script etwa so aussähe:
01.
dt = f1.DateLastModified
02.
Dat = FormatDateTime(dt, vbShortDate) & " " & FormatDateTime(dt, vbLongTime)
03.
li = Dat & " " & f1.Path & vbcr
Zu Deinem Entwurf hätte ich noch einige Anmerkungen:
  • Du "splittest" praktisch Dein Hauptprogramm - übersichtlicher wäre:
01.
dim liste
02.
dim Pfad1
03.
ordner ="Z:\log\"
04.

05.
Listordner ordner
06.
msgbox "Fertig", 64 , "Fertig"
  • Das Deklarieren ("dim ...") von Variablen solltest Du konsequent oder gar nicht vornehmen. Wenn Du deklarierst, dann alle Variablen (also auch "ordner", "file", "logbuch" ...) und am besten kombiniert mit einer ersten Zeile "Option Explicit" - damit erreichst Du, dass Dich der Interpreter darauf hinweist, wenn eine nicht deklarierte Variable verwendet werden soll, was einen effektiven Schutz gegen Tippfehler in Variablennamen bringt (wenn Du etwa für die Variable "Pfad1" an anderer Stelle im Script nur "Pfad" schreibst, erhältst Du eine diesbezügliche Fehlermeldung).
  • Es genügt, das "FileSystemObject" nur einmal zu erzeugen - verwenden kannst Du es dann sowohl für Ordner, als auch für Dateien.
  • Der Variablennamen "ordner" steht für den Pfad im Hauptprogramm, als Argument im Unterprogramm und nochmals für das erzeugte "Folder"-Objekt - hier solltest Du besser differenzieren.
  • Das zusätzliche File-Objekt "f1" ist unnötig - Du hast ja aus der Files-Auflistung ohnehin schon jede einzelne Datei in der Schleife als "file" zur Verfügung.
  • Einerseits hast Du (sinnvoller Weise) die Festlegung des zu bearbeitenden Ordners durch eine Variablenzuweisung gleich am Anfang vorgenommen, andererseits den Namen der Ausgabedatei im Unterprogramm "hart codiert" - auch dafür würde sich eine Variable anbieten.
  • Das Öffnen und Schließen der Ausgabedatei innerhalb der Schleife ist aus meiner Sicht unnötig - vor der Schleife, und dann einfach zum Schreiben, öffnen würde schon genügen, und so könntest Du zB auch automatisch bei jedem Durchlauf des Scripts die Ausgabedatei neu erstellen lassen (wobei alternativ ein "Append" natürlich auch hier möglich wäre).
  • Das "Löschen" der Variable "li" passiert automatisch, wenn Du die Ausgabezeile so erzeugst:
01.
li = f1.DateLastModified & " " & f1.Path & vbcr
  • Es lässt sich sicher streiten, ob die zusätzliche Zeilenschaltung (mit "vbCr") besser in der Variablen oder erst beim Schreiben in die Datei untergebracht ist ...
  • Anstelle des wenig aussagekräftigen Wertes "64" in der MsgBox bietet sich die Konstante "vbInformation" an. (Bei "OpenTextFile" schreibe ich allerdings "2", da ich eine Konstante "ForWriting" erst deklarieren müsste und es auch nur drei mögliche Werte gibt, die relativ rasch geläufig werden).
  • Als weiterer Beitrag zur Übersichtlichkeit empfiehlt sich das Einrücken von Codeblöcken (wie zB innerhalb der "For"-Schleife). Im Forum werden für den verwendeten Tab leider anstelle von nur 4 Leerzeichen gleich 8 gesetzt, im Editor sieht's besser aus ...
Unter Berücksichtigung dieser Aspekte würde das Script bei mir etwa so aussehen:
01.
Ordner = "Z:\log\"
02.
LogDatei = "Z:\inhalt.txt"
03.

04.
Listordner Ordner, LogDatei
05.
MsgBox "Fertig", vbInformation, "Fertig"
06.

07.
Sub Listordner(OrdnerPfad, DateiPfad)
08.
Set fso = CreateObject("Scripting.FileSystemObject")
09.
Set Folder = fso.GetFolder(OrdnerPfad)
10.
Set Logbuch = fso.OpenTextFile(DateiPfad, 2, True)
11.

12.
For Each File In Folder.Files
13.
	dt = File.DateLastModified
14.
	Dat = FormatDateTime(dt, vbShortDate) & " " & FormatDateTime(dt, vbLongTime)
15.
	Line = Dat & vbTab & File.Path
16.
	Logbuch.WriteLine Line & vbCrLF
17.
Next
18.

19.
Logbuch.Close
20.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: rabbit00
12.04.2008 um 19:14 Uhr
Danke für die ausführliche Antwort, das hilft mir wirklich weiter. Es läuft nun auch, so wie es sollte.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Windows 10 Batch für Datum und Uhrzeit setzen

gelöst Frage von zeroblue2005Batch & Shell18 Kommentare

Hallo Zusammen, habe hier ein Laptop von Medion,, wo die Bios fest verlötet ist. Fragt mich bitte nicht was ...

Windows 10

Windows 10 - registry eintrag "datum und uhrzeit automatisch festlegen"

Frage von ZacMcKrackenWindows 108 Kommentare

moin, wenn ich dokumente scanne, bekommen die "leider" das aktuelle systemdatum ich hätte gerne, dass die ein bestimmtes datum ...

Switche und Hubs

HP Switch behält Datum und Uhrzeit nicht nach Reboot

gelöst Frage von TiTuxSwitche und Hubs7 Kommentare

Hallo, ich habe einen HP ProCurve 2530 Switch. Ich habe lokal die Uhrzeit und das Datum eingestellt. Anschließend wurde ...

Microsoft Office

Excelfunktion Automatisches Eintragen von Datum und Uhrzeit bei ausgefüllter Zelle

gelöst Frage von ScrisesMicrosoft Office3 Kommentare

Hallo Excel-Götter, ich kämpfe gerade mit folgendem Problem. Ich habe eine Software, welche mir Messwerte in eine Excel-Liste überträgt. ...

Neue Wissensbeiträge
Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 7 StundenExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 21 StundenLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 2 TagenWindows Mobile

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 4 TagenInternet6 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Temporäre WLAN Verbindung für AD-Login
Frage von Christian.WidauerLAN, WAN, Wireless17 Kommentare

Hallo zusammen, ich weiß leider nicht unter welchem Begriff ich dafür suchen muss, daher habe ich bisher leider nichts ...

LAN, WAN, Wireless
Bekannte Drosselungen bei Providern ?
Frage von HenereLAN, WAN, Wireless15 Kommentare

Servus zusammen, in bereits angefangen, aber ich hoffe dass der Beitrag hier mehr Informationen bringt. Sind Portdrosselungen bzw gezielte ...

Netzwerkmanagement
Reverse Proxy für TCP und UDP Anfragen
gelöst Frage von flxklsNetzwerkmanagement14 Kommentare

Hallo zusammen, ich besitze einen Rootserver, der nur eine öffentliche IP besitzt und auf dem mehrere VMs laufen. Da ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server14 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...