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

Suche VBScript zum auslesen einer .csv datei nach dem auslesen sollen 1 monat alte einträge geslöscht werden

Mitglied: nochamlernen

nochamlernen (Level 1) - Jetzt verbinden

22.08.2013 um 10:29 Uhr, 2283 Aufrufe, 13 Kommentare, 4 Danke

Hall ich suche ein VbScript das mir die arbeit erleichtert. Das script soll in einer .csv datei die das an und abmelden eines useres erfasst spricht die Uhrzeit und das datum. Jetzt zu der genauen aufgabe das script soll einträge die älter als 1 monat löschen damit die .csv datei nich zu groß wird und ewig zum öffnen brauch. Ich würde mich über einen link/fertiges script freuen da ich einfach nicht weiter komme.
Danke im Vorraus Daniel (sry für die grottige rechtschreibung :D)
Mitglied: colinardo
22.08.2013, aktualisiert um 11:52 Uhr
Hallo Daniel,
das könntest du mit folgendem Script erreichen:
(Pfad zur CSV-Datei noch in der ersten Zeile ändern)
01.
CSV = "F:\login.csv" 
02.
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
03.
Set objShell = WScript.CreateObject("Wscript.Shell") 
04.
USERNAME = objShell.ExpandEnvironmentStrings("%username%") 
05.
If Not fso.FileExists(CSV) Then 
06.
	'CSV-Datei erstellen wenn sie noch nicht existiert 
07.
	Set objNewFile = fso.CreateTextFile(CSV,False) 
08.
Else 
09.
	'Einträge älter as 30 Tage nicht übernehmen 
10.
	strContent = Split(fso.OpenTextFile(CSV,1).ReadAll,vbNewLine) 
11.
	Set objNewFile = fso.OpenTextFile(CSV,2) 
12.
	For i = 0 To UBound(strContent) 
13.
		If strContent(i) <> "" Then 
14.
			lineDatum = Split(strContent(i),";")(0) 
15.
			If DateValue(lineDatum) > DateAdd("d",-30,Now()) Then 
16.
				objNewFile.WriteLine strContent(i) 
17.
			End If 
18.
		End If 
19.
	Next 
20.
End If 
21.
'Aktuellen Login eintragen 
22.
objNewFile.WriteLine Now() & ";" & USERNAME 
23.
objNewFile.Close
die resultierende CSV-Datei sähe dann nach folgendem Muster aus:
22.08.2013 11:46:48;hmustermann 
22.08.2013 11:46:59;gmusterfrau
Einträge älter als 30 Tage werden herausgelöscht und neue Einträge angehängt.

Grüße Uwe
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 11:55 Uhr
Danke dir muss das muster meiner csv datei noch deinen angaben entsprchend gestallten :D
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 12:03 Uhr
Noch mal eben eine frage würde es so auch gehen Abgemeldet: constantin 22.08.2013 01:05,1
Bitte warten ..
Mitglied: colinardo
22.08.2013, aktualisiert um 12:08 Uhr
Im Moment loggt das Script nur Anmeldungen. Passe ich dir noch an.
Meinst du das deine Struktur dann so aussieht ohne irgendein Trennzeichen wie ";" ?:
Abgemeldet: constantin 22.08.2013 01:05,1
mit der Uhrzeit könnte es Probleme geben, aber ich kann den Datumsvergleich auch nur über das Datum machen.
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 12:08 Uhr
Wenn es dir hillft kann ich dir die gemeinte csv datei schicken ( wenn das hier irgend wie möglich ist )
Bitte warten ..
Mitglied: colinardo
22.08.2013 um 12:10 Uhr
poste hier einfach einen Ausschnitt, und benutze Code-Tags dafür.
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 12:20 Uhr
Sry wenn das jetzt dumm kling naja ist es auch aber da steig ich nich durch ich meinte

Abgemeldet:
User: Datum: Zeit:
constantin 21.08.2013 15:31:35,23

so sah das vor deinem script aus

Abgemeldet: constantin 22.08.2013 01:05,1

jetzt so jeder wert in einer tabelen spalte und ich habe schon programme die das hoch und runter fahren so wie das an und abmelden in diese csv datei schreiben.
Bitte warten ..
Mitglied: colinardo
22.08.2013 um 12:28 Uhr
Zitat von nochamlernen:
Sry wenn das jetzt dumm kling naja ist es auch aber da steig ich nich durch ich meinte

Abgemeldet:
User: Datum: Zeit:
constantin 21.08.2013 15:31:35,23

so sah das vor deinem script aus

Abgemeldet: constantin 22.08.2013 01:05,1

jetzt so jeder wert in einer tabelen spalte und ich habe schon programme die das hoch und runter fahren so wie das an und abmelden
in diese csv datei schreiben.
Sorry aber dein Deutsch ist zu schlecht um dich vernünftig zu verstehen.

Hier mein Vorschlag, deine CSV-Datei zu strukturieren:
Angemeldet;username;22.08.2013 18:00.00 
Abgemeldet;username;22.08.2013 17:00.00
die Felder sind jeweils mit einem Semikolon voneinander getrennt, das erkennt Excel dann automatisch und ordnet den Feldern jeweils eine separate Spalte zu wenn du die CSV-Datei öffnest. Das ist ja auch der eigentlich Zweck einer CSV-Datei. Das was du machen willst ist Bullshit.
Bitte warten ..
Mitglied: colinardo
22.08.2013 um 12:38 Uhr
Zitat von colinardo:
Hier mein Vorschlag, deine CSV-Datei zu strukturieren:
Angemeldet;username;22.08.2013 18:00.00 
Abgemeldet;username;22.08.2013 17:00.00
Zu meinem Vorschlag hier das passende Script das auch Anmelden und Abmelden unterscheidet
Dazu startet man das script mit folgenden Kommandozeilen, je nach nachdem ob es ein Anmelden oder ein Abmelden-Event sein soll

Im Anmelde-Script:
cscript.exe //NOLOGO dasscript.vbs logon
Im Abmelde-Script
cscript.exe //NOLOGO dasscript.vbs logoff
01.
CSV = "F:\login.csv" 
02.
'Scriptargumente überprüfen 
03.
Set objArgs = WScript.Arguments 
04.
If objArgs.Count = 1 Then 
05.
	Select Case objArgs(0) 
06.
		Case "logon" 
07.
			LOGON_TYPE = "Angemeldet" 
08.
		Case "logoff" 
09.
			LOGON_TYPE = "Abgemeldet" 
10.
	End Select 
11.
Else 
12.
	WScript.Quit 1 
13.
End If 
14.
 
15.
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
16.
Set objShell = WScript.CreateObject("Wscript.Shell") 
17.
USERNAME = objShell.ExpandEnvironmentStrings("%username%") 
18.
If Not fso.FileExists(CSV) Then 
19.
	'CSV-Datei erstellen wenn sie noch nicht existiert 
20.
	Set objNewFile = fso.CreateTextFile(CSV,False,True) 
21.
Else 
22.
	Set objCSVFile = fso.OpenTextFile(CSV,1) 
23.
	If Not objCSVFile.AtEndOfStream Then	'wenn die datei nicht leer ist  
24.
		strContent = Split(objCSVFile.ReadAll,vbNewLine) 
25.
		objCSVFile.Close 
26.
		Set objNewFile = fso.OpenTextFile(CSV,2) 
27.
		'Einträge älter as 30 Tage nicht übernehmen 
28.
		For i = 0 To UBound(strContent) 
29.
			If strContent(i) <> "" Then 
30.
				lineDatum = Split(strContent(i),";")(2) 
31.
				If DateValue(lineDatum) > DateAdd("d",-30,Now()) Then 
32.
					objNewFile.WriteLine strContent(i) 
33.
				End If 
34.
			End If 
35.
		Next 
36.
	Else 	'wenn die Datei leer sein sollte 
37.
		Set objNewFile = fso.OpenTextFile(CSV,2) 
38.
	End If 
39.
End If 
40.
'Aktuellen Login eintragen 
41.
objNewFile.WriteLine LOGON_TYPE & ";" & USERNAME & ";" & Now() 
42.
objNewFile.Close
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 12:39 Uhr
Ich bin für jede art der änderung bereit und das mit dem deutsch stimmt habs grade selber noch einmal duch gelesen es tut mir sehr leid.Ich meinte damit das meine batch das so in die csv schreibt: Abgemeldet:
User: Datum: Zeit:
constantin 21.08.2013 15:31:35,23

Halt alles in einer spalte und untereinander jetzt hab ich meine batch umgeschreiben und die schreibt das jetzt so in die csv :
Abgemeldet: constantin 22.08.2013 01:05,1. Auch hier alles in einer spallte.
Ich hoffe du hast mich jetzt besser verstanden fals nich tut mir wie gesagt leid deutsch is ein fach nich so meine stärke.
Gruss
Daniel
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 12:45 Uhr
Also dieses mit dem an und abmelden soll automatisch geschehen wenn der benutzer sich einloggt bei windows mit dem abschnitt bin ich ja schon fertig mir geht es eigentlich nur noch dadrum das eine datei die man startet meine csv datei list und die einträge löscht die älter als 1 monat sind damit die deitei nicht denn speicher blockiert oder ewig zum laden braucht. Es tut mir echt leid das wir uns grade so miss verstehen Ich bin einfach nur zu blöd.
Bitte warten ..
Mitglied: colinardo
22.08.2013, aktualisiert um 14:38 Uhr
Zitat von nochamlernen:
Also dieses mit dem an und abmelden soll automatisch geschehen wenn der benutzer sich einloggt bei windows mit dem abschnitt bin
ich ja schon fertig mir geht es eigentlich nur noch dadrum das eine datei die man startet meine csv datei list und die
einträge löscht die älter als 1 monat sind damit die deitei nicht denn speicher blockiert oder ewig zum laden
braucht. Es tut mir echt leid das wir uns grade so miss verstehen Ich bin einfach nur zu blöd.

aber lesen kannst du hoffentlich, ich hatte oben geschrieben das das Script das Löschen der älteren Einträge bereits beinhaltet. Im Code steht dies ebenfalls. Da du diesen anscheinend nicht ließt sondern einfach nur Copy n' Paste betreibst, klinke ich mich abschließend mit folgendem Script gepflegt aus.

für deine gewünschte Ausgabe
Abgemeldet: constantin 22.08.2013 01:05:00
geht dieses Script. Alles weitere dazu steht weiter oben.
01.
CSV = "F:\login.csv" 
02.
'Scriptargumente überprüfen 
03.
Set objArgs = WScript.Arguments 
04.
If objArgs.Count = 1 Then 
05.
	Select Case objArgs(0) 
06.
		Case "logon" 
07.
			LOGON_TYPE = "Angemeldet:" 
08.
		Case "logoff" 
09.
			LOGON_TYPE = "Abgemeldet:" 
10.
	End Select 
11.
Else 
12.
	WScript.Quit 1 
13.
End If 
14.
 
15.
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
16.
Set objShell = WScript.CreateObject("Wscript.Shell") 
17.
USERNAME = objShell.ExpandEnvironmentStrings("%username%") 
18.
If Not fso.FileExists(CSV) Then 
19.
	'CSV-Datei erstellen wenn sie noch nicht existiert 
20.
	Set objNewFile = fso.CreateTextFile(CSV,False,True) 
21.
Else 
22.
	Set objCSVFile = fso.OpenTextFile(CSV,1) 
23.
	If Not objCSVFile.AtEndOfStream Then	'wenn die datei nicht leer ist  
24.
		strContent = Split(objCSVFile.ReadAll,vbNewLine) 
25.
		objCSVFile.Close 
26.
		Set objNewFile = fso.OpenTextFile(CSV,2) 
27.
		'Einträge älter als 30 Tage nicht übernehmen 
28.
		For i = 0 To UBound(strContent) 
29.
			If strContent(i) <> "" Then 
30.
				lineDatum = Split(strContent(i)," ")(2) 
31.
				If DateValue(lineDatum) > DateAdd("d",-30,Now()) Then 
32.
					objNewFile.WriteLine strContent(i) 
33.
				End If 
34.
			End If 
35.
		Next 
36.
	Else 	'wenn die Datei leer sein sollte 
37.
		Set objNewFile = fso.OpenTextFile(CSV,2) 
38.
	End If 
39.
End If 
40.
'Aktuellen Login eintragen 
41.
objNewFile.WriteLine LOGON_TYPE & " " & USERNAME & " " & Now() 
42.
objNewFile.Close
Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: nochamlernen
22.08.2013 um 15:07 Uhr
sry habe deine scripst schon gelesen aber wenn man sie nicht komplet versteht was soll man machen ich bedanke mich ganz herlich bei dir
Gruss
Daniel
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail

Outlook blockt anhang das älter als 1-Monat alt ist

Frage von DogukannOutlook & Mail2 Kommentare

Hallo, ich habe ein kleines vielleicht Simples anliegen mit Outlook. Mein Outlook 2010 öffnet die Anhänge (PDF) nicht die ...

Batch & Shell

Dateien aus CSV mit Batch suchen

gelöst Frage von joes1609Batch & Shell5 Kommentare

Hallo zusammen, ich stehe gerade auf dem Schlauch. Ich habe eine CSV-Datei, in der stehen zusammengesetzt, jeweils ein kompletter ...

Datenbanken

Access 2016 vertauscht Monat und Tag in meiner CSV Datei

Frage von iGordonDatenbanken1 Kommentar

Hi, ich habe ein Problem und hoffe etwas Hilfe zu bekommen. Ich arbeite mit Access 2016. Ich habe eine ...

Exchange Server

Exchange Zertifikat nur 1 Monat

Frage von manu90Exchange Server4 Kommentare

hi zusammen, habe im Exchange 2007 ein lokales Zertifikat erstellt - weil das alte abgelaufen ist normalerweise sind die ...

Neue Wissensbeiträge
Sicherheit
Adminrechte dank Bug in Intel HD Graphics Treiber
Information von DerWoWusste vor 4 StundenSicherheit

->Intel HD graphics 4200 und neuer (4400, 4600 520,530,620, 630,) sind auf jeden Fall betroffen und bereinigte Treiber sind ...

Router & Routing

Endlich: Reines Kabel-TV Modem in D erhältlich !

Information von aqui vor 2 TagenRouter & Routing10 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Netzwerkgrundlagen
The Illustrated TLS Connection
Information von Lochkartenstanzer vor 3 TagenNetzwerkgrundlagen1 Kommentar

Moin, Unter findet man eine gelungene Erläuterung von TLS. Fördert sehr das verständnis darüber, was da passiert. lks

Windows 10

Zuverlässiger Remove-AppxProvisionedPackage Ausführen in W10-1803

Tipp von NetzwerkDude vor 5 TagenWindows 104 Kommentare

Moin, Remove-AppxProvisionedPackage hat in 1709 recht zuverlässig funktioniert, in 1803 ist es leider so das es gerne mail failed ...

Heiß diskutierte Inhalte
Windows Server
AD User wird immer wieder gesperrt
Frage von YellowcakeWindows Server19 Kommentare

Hey ich habe einen User (ein GL User - Natürlich was denn sonst) der immer wieder gesperrt wird. Ich ...

Windows Netzwerk
Gruppenrichtlinie für einen PC deaktivieren
gelöst Frage von Florian961988Windows Netzwerk14 Kommentare

Hallo, kleines Problem und immoment finde ich dazu keine Lösung oder mir fällt nicht ein, wie ich es suche ...

Festplatten, SSD, Raid
LSI 9361 Controller, versehentlich virtual Drive am Controller gelöscht
Frage von pixel24Festplatten, SSD, Raid12 Kommentare

Hallo zusammen, gibt es hier einen Experten der sich gut mit LSI MegaRAID auskennt? Ich habe versehentlich im Controller-BIOS ...

Switche und Hubs
OpenSource oder Freeware zur Verwaltung von Switchen
gelöst Frage von JonskezSwitche und Hubs12 Kommentare

Hallo, gibt eine kostenlose Verwaltungssoftware für Switche (überwiegend HP/Aruba)? Es sollte möglich sein, aus der Ferne z.B. die Firmware ...