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

Bestimmte Ordner suchen, darin enthaltene Dateien, älter als 3 Tage löschen und anschließend leere Ordner löschen

Frage Entwicklung Batch & Shell

Mitglied: JanDark

JanDark (Level 1) - Jetzt verbinden

18.12.2009 um 15:49 Uhr, 8051 Aufrufe, 5 Kommentare

Folgende Situation:
Auf einem Server werden durch verschiedene Benutzer in einem Ordner xyz Unterverzeichnisse angelegt.
Eine Applikation generiert dynamisch in diesem Ordner xyz jeweils in den User-Ordnern einen "2delete" Ordner.
Ich versuche nun eine Batch-Datei zu schreiben, die

1.) alle "2delete" Ordner sucht, und in ein LogFile schreibt
2.) Jeweils IN diesem "2delete" Ordner ALLE Dateien sucht, die älter als 3 Tage sind und diese dann löscht.
3.) Anschließend noch ALLE leeren Ordner innerhalb "2delete" löscht.

Meine Ansätz bisher:

Ansatz1 - FORFILES

set=log_delete.log
dir /b /s /a:d c:\application\user\ |find /i "2delete" >%log%
for /f %%a IN (%log%) DO FORFILES /p %%a /s /m *.* /d -3 /c "CMD /c del /q @File




Ansatz2 - delage32

set=log_delete.log
dir /b /s /a:d c:\application\user\ |find /i "2delete" >%log%
for /f %%a IN (%log%) Do delage32 %%a *.* 3 /recurse

Das Problem scheint zu sein, dass die Ordnernamen zum größten Teil eine Länge
von mehr als 8 Zeichen haben und/oder Leerzeichen enthalten.

Die Pfade, die im Logfile stehen sind 100% korrekt aber das was er dann
per for Schleife ausliest haut nicht hin, da verschluckt er alles was länger als
8 Zeichen ist bzw. ein Leerzeichen enthält. Un dsomit gehts nicht.

Hat wer eine Idee?
Mitglied: 60730
18.12.2009 um 16:33 Uhr
Zitat von JanDark:
Folgende Situation:
...ist aber keine nette Begrüßung....
..und deine Frage haben hier bestimmt schon mehr als 10 gestellt und wurde(n) gelöst

da verschluckt er alles was länger als 8 Zeichen ist bzw. ein Leerzeichen enthält.
Und was macht man dann?
doppelte " benutzen?

Mich würde mal echt interessieren, was sich so mancher denkt und wer seine Gehaltserhöhung Brain 2.0 / Web 2.0 verdankt...

Menno das mus doch wirklich nicht sein - hier kriegt man soviel frei Frank Biber&Scholl und Gratis, da kann man doch etwas Eigeninitiative oder zumindestens Höflichkeit erwarten.
Und weil ich den Spruch mit dem Wald wortwörtlich nehme - ich bins das Echo
Bitte warten ..
Mitglied: JanDark
18.12.2009 um 16:42 Uhr
Hm OK, hast Recht, die Begrüßung ließ ein wenig zu Wünschen übrig ...
Also dann erst mal ein nettes Halloooo in die Runde

Du wirst lachen, aber ich habe mich durch sämtliche Beiträge zu diesem
Thema gelsen auch in anderen Foren, ich sitze bereits ein paar nette
Stündchen an dem Problem und habe bestimmt schon einiges probiert ...

Aber nu zurück zum Thema:
Wo muss ich doppelte " einsetzen?

Im Logfile stehen ja alle Pfade so wie es sein soll,
das Problem tritt beim wieder auslesen auf.
Ich habe auch schon versucht, das Logfile anschließend
zu bearbeiten und alles in " " zu stzen, nur so zum Test,
bringt aber auch nichts.

Also auch ein

set=log_delete.log
dir /b /s /a:d c:\application\user\ |find /i "2delete" >%log%
for /f %%a IN (%log%) DO Echo %%a

liefert bereits eine falsche Ausgabe
Bitte warten ..
Mitglied: Biber
18.12.2009 um 16:55 Uhr
Moin JanDark,

willkommen im Forum.
Du hast sicherlich nicht verdient, gleich eine volle Breitseite abzubekommen, aber speziell heute warst du der Tropfen, der das Fass zum Explodieren gebracht hat.
[ @JanDark/@T-Mo: Soll nicht diskriminierend sein: bei Bedarf "Tropf/Fass/explodieren" durch "Funke/edles Tröpfchen/Knaller" oder ähnliches ersetzen]

Zu deiner Frage:

Wenn du Strategie 2 (eine Textdatei mit FOR /F-Auslesen ) weiterverfolgen willst:

FOR /F "delims=" %%i in (eineTextdatei) DO whateverWith "%%i"
...nimmt die komplette Zeile (auch wenn Leerzeichen / mehrere "Token" enthalten sind.

In deinem Fall (ungetestet):
01.
for /f "delims=" %%a IN (%log%) Do delage32 "%%a\*.*" 3 /recurse
Grüße
Biber
Bitte warten ..
Mitglied: JanDark
18.12.2009 um 16:57 Uhr
Hi Biber,

danke für die Antwort,
werde ich direkt am Montamorgen testen,
bin gerade auf dem Heimweg ...

Werde mich dann aber wieder melden,
ob es so funktioniert oder nicht.

Allen erst mal ein schönes Wochenende!
Bitte warten ..
Mitglied: JanDark
21.12.2009 um 13:48 Uhr
perfekt, Danke,
"delims=" war der fehlende Hinweis!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Win7-Batch - bestimmte Ordner in TEMP löschen (1)

Frage von jan99 zum Thema Batch & Shell ...

Batch & Shell
Fileserver Daten älter als 14 Tage löschen! (11)

Frage von michi-ffm zum Thema Batch & Shell ...

Outlook & Mail
gelöst Bestimmte Anhänge bei E-mails mit Exchange 2010 löschen (5)

Frage von jojo0411 zum Thema Outlook & Mail ...

Microsoft
Im ordner nach dateien aus excel liste suchen (2)

Frage von tioloco zum Thema Microsoft ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(6)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

LAN, WAN, Wireless
IP Sec Client legt Netzwerkkarte lahm (12)

Frage von mario87 zum Thema LAN, WAN, Wireless ...