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

Batch: Dateien älter als X filtern und in einer TXT oder CSV speichern

Frage Entwicklung Batch & Shell

Mitglied: crinaX

crinaX (Level 1) - Jetzt verbinden

14.08.2014, aktualisiert 06.10.2015, 260 Aufrufe, 8 Kommentare

Guten Morgen liebe Community,

ich habe gestern ein PowerShell Skript erstellt, welches Dateien filtert in einem angegebenem Pfad und diese dann in einer .CSV speichert (Pfad+Name und letztes Änderungsdatum). Das Skript sieht in etwa so aus:
01.
#Alle Dateien auf Datum überprüfen und wenn älter als X dann in CSV schreiben 
02.
Get-ChildItem $path –Recurse| where {$_.LastWriteTime –lt $date} | Select-Object FullName, LastWriteTime | sort LastWriteTime | export-csv -path "$csv_path\$csv_name.csv" -encoding ASCII -NoTypeInformation -Delimiter ";"
Nun probiere ich das ganze auch für Windows Server 2000 in einer .bat zu realisieren. Das einzige was ich dazu allerdings finde ist der "forfiles" Befehl. Like this:
01.
Forfiles /P E:\Ordner\ /S /M *.* /D -8 /C "cmd /c del /q @path"
Nur löscht dieser Befehl die Dateien und ich weiß absolut nicht wie ich es hinkriege, dass er die Dateien nicht löscht sondern diese einfach in einer .txt oder .csv speichert.

Kann mir da wer helfen?

LG
crinaX
Mitglied: colinardo
LÖSUNG 14.08.2014, aktualisiert um 09:07 Uhr
forfiles /P "E:\Ordner" /S /M *.* /D -8 /C "cmd /c echo "@path";""@fdate" "@ftime""">deineCSVDatei.csv
Grüße Uwe
Bitte warten ..
Mitglied: crinaX
14.08.2014, aktualisiert um 09:07 Uhr
Wieder viele Dank für die schnelle Antwort
Also die Ausgabe in der CMD sieht soweit richtig aus. Nur steht jetzt hinter der Zeit der Pfad der CSV und diese CSV wird auch nicht erstellt... Noch einen Tipp?


EDIT:
Du hattest schon korrigiert, aber ich noch nicht aktualisiert. Vielen Dank! Funktioniert einwandfrei.

LG
crinaX
Bitte warten ..
Mitglied: crinaX
14.08.2014, aktualisiert um 09:27 Uhr
Kann ich das ganze auch mit Variablen ausfüllen?

01.
forfiles /P %path% /S /M *.* /D -%date% /C "cmd /c echo "@path";""@fdate" "@ftime""">%csv_path%\%csv_name%.csv
Habe es so probiert und die Variablen werden halt vorher vom Nutzer eingetippt. Nun bekomm ich allerdings den Fehler:
01.
FEHLER: Argument/Option ungültig - 'System'.
Bitte warten ..
Mitglied: colinardo
14.08.2014, aktualisiert um 09:33 Uhr
sicher, aber du machst einige Fehler. z.B. verwendest du die spezielle %Path%-Systemvariable und die Systemvariable %date% (außer du wolltest das aktuelle Datum verwenden), hier solltest du besser andere Namen vergeben und der zweite Fehler ist das nicht umschließen der Pfade mit Anführungszeichen wenn sie Leerzeichen enthalten sollten:
forfiles /P "%STRPATH%" /S /M *.* /D -%STRDATE% /C "cmd /c echo "@path";""@fdate" "@ftime""">"%csv_path%\%csv_name%.csv"
Bitte warten ..
Mitglied: crinaX
14.08.2014 um 09:41 Uhr
Das mit der Systemvariablen war mir dann auch aufgefallen. Nur scheinen die Anführungszeichen auch nicht zu helfen:

01.
set /p spath = Bitte Pfad eingeben in dem gesucht werden soll:  
02.
set /p sdate = Bitte geben Sie ein Alter in Tagen an, ab welchem gefiltert werden soll:  
03.
set /p csv_path = Bitte geben Sie einen Pfad ein in welchem die CSV Datei gespeichert werden soll:  
04.
set /p csv_name = Bitte geben Sie einen Namen f%ue%r die CSV Datei ein:  
05.
 
06.
forfiles /P "%spath%" /S /M *.* /D -"%sdate%" /C "cmd /c echo "@path";""@fdate" "@ftime""">"%csv_path%\%csv_name%.csv" 
07.
pause
Mit Anführungszeichen kommt:
01.
FEHLER: Der Wert für Option "/P" darf nicht leer sein.
Und ohne Anführungszeichen:
01.
FEHLER: Ungültige Syntax. Wert für "/P" erwartet.
Bitte warten ..
Mitglied: colinardo
14.08.2014, aktualisiert um 09:45 Uhr
du hast bei deinen SET-Befehlen zwischen der Variablennamen und dem Gleichheitszeichen ein Leerzeichen, das darfst du nicht machen !! Denn ansonsten ist die Variable hinterher leer bzw. existiert nicht. Deswegen die Meldung von Forfiles das der Pfad leer ist !
01.
set /p spath=Bitte Pfad eingeben in dem gesucht werden soll:  
02.
set /p sdate=Bitte geben Sie ein Alter in Tagen an, ab welchem gefiltert werden soll:  
03.
set /p csv_path=Bitte geben Sie einen Pfad ein in welchem die CSV Datei gespeichert werden soll: 
04.
set /p csv_name=Bitte geben Sie einen Namen f%ue%r die CSV Datei ein: 
Bitte warten ..
Mitglied: crinaX
18.08.2014 um 08:45 Uhr
Funktioniert alles einwandfrei. Gibt es auch noch Variablen die ich bei:
01.
forfiles /P "%spath%" /S /M *.* /D -"%sdate%" /C "cmd /c echo "@path";""@fdate" "@ftime""">"%csv_path%\%csv_name%.csv"
Anhängen kann um mir auch noch den Ersteller der Datei und das Erstellungsdatum (nicht Änderungsdatum) in die CSV zu speichern?
Bitte warten ..
Mitglied: colinardo
18.08.2014 um 08:55 Uhr
forfiles /?
gibt dir diese Auskunft.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch E-Mail Body aus txt lesen und einfügen (9)

Frage von pdiddo zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Basic
Programmierung von Windows Programmen (9)

Frage von Ghost108 zum Thema Basic ...

C und C++
Fehlendes verständiss von C und C++ (8)

Frage von zelamedia zum Thema C und C ...