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 Wörter in Dateinamen suchen

Frage Entwicklung Batch & Shell

Mitglied: matze-pe

matze-pe (Level 1) - Jetzt verbinden

28.09.2011, aktualisiert 11:19 Uhr, 3372 Aufrufe, 8 Kommentare

Hallo,
ich habe ein Skript mir zusammen gebaut, der mir alle Dateien und Ordner die älter ein Tag sind automatisch löscht.

Jetzt möchte ich das erweitern, und weiß nicht so richtig wie ich das machen soll.

Es sollen alle Dateien und Ordner durchsucht werden, wenn im Dateinamen das Wort "nicht löschen" vorkommt soll die Datei vom Skript nicht gelöscht werden.


Anbei mein Skript ohne Abfrage nach dem Wort "nicht löschen":


for /R "C:\skript\transfer" %%i in (*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"|| del "%%~dpnxi"
for /D %%i in (C:\skript\transfer\*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"|| rd /s /q "%%i"

for /F "delims=" %%i in ('dir /b /s /ad C:\skript\transfer') do rd "%%i" 2>NUL




Ich habe es schon mit einer IF-Abfrage erweitert, aber das haut so nicht hin:


IF "%1" == "nicht löschen"
(
ECHO %1 nicht löschen
pause
)
else
(
for /R "C:\skript\transfer" %%i in (*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"|| del "%%~dpnxi"
for /D %%i in (C:\skript\transfer\*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"|| rd /s /q "%%i"

for /F "delims=" %%i in ('dir /b /s /ad C:\skript\transfer') do rd "%%i" 2>NUL
pause
)





Vielen Dank im vorraus


mfg
Mitglied: bastla
28.09.2011 um 11:24 Uhr
Hallo matze-pe!

Mit einem an passender Stelle platzierten
findstr /i /c:"nicht löschen"
sollte das doch eigentlich kein Problem sein (wobei ich aber eher bei der übergeordneten Schleife ansetzen und
findstr /v /i /c:"nicht löschen"
verwenden würde) ...

Grüße
bastla

[Edit] @skye: http://www.administrator.de/helpsystem/detail.php?idx=20#toc23 [/Edit]
Bitte warten ..
Mitglied: Skyemugen
28.09.2011 um 11:26 Uhr
Aloha,

  • 1. Wir haben hier gar lustige <code></code>-Tags, diese bitte zum Wohle unserer Augen benutzen, danke
  • 2. Schon einmal daran gedacht, die Abhandlung |findstr /V /i /c:"nicht löschen" an passender Stelle zu erweitern

greetz André

edit: too late
Bitte warten ..
Mitglied: matze-pe
28.09.2011 um 11:36 Uhr
Stimmt :D Danke es klappt.

Manchmal sieht man den Wald vor lauter Bäumen nicht :D
Bitte warten ..
Mitglied: matze-pe
28.09.2011 um 11:53 Uhr
Eins fehlt mir noch ein, wenn welche im Dateinamen z.B. "nicht loeschen" oder nur "NL" reinschreiben, anstatt "nicht löschen" wie erweitere ich denn den findstr?

Habe es jetzt so gelöst, klappt aber nicht


01.
   for /R "C:\skript\transfer" %%i in (*.*) do @echo %%~ti|findstr /V /i /c:"nicht löschen nl loeschen"|find "%date%"||@echo %%~ti|find "%gestern%"|| del "%%~dpnxi" 
02.
   for /D %%i in (C:\skript\transfer\*.*) do @echo %%~ti|findstr /V /i /c:"nicht löschen nl loeschen"|find "%date%"||@echo %%~ti|find "%gestern%"|| rd /s /q "%%i" 
03.
 
04.
   for /F "delims=" %%i in ('dir /b /s /ad C:\skript\transfer') do rd "%%i" 2>NUL
Wenn ich zweimal |findstr /V /i /c:"nicht löschen" und |findstr /V /i /c:"nicht loeschen" hintereinander schreibe, passiert auch nichts.
Bitte warten ..
Mitglied: bastla
28.09.2011 um 12:10 Uhr
Hallo matze-pe!

Versuch es damit:
Erstelle eine Textdatei (zB "D:\NL.txt"), schreibe jeden Begriff in eine eigene Zeile und ändere
findstr /v /i /c:"nicht löschen nl loeschen"
auf
findstr /v /i /g:"D:\NL.txt"
Grüße
bastla
Bitte warten ..
Mitglied: matze-pe
28.09.2011 um 12:29 Uhr
Hallo,
geht leider nicht, es werden alle Ordner gelöscht, bis auf ein "nicht löschen" Ordner, dort wurden aber alle Unterordner gelöscht. Alle anderen Bedingungen werden nicht angenommen.

Bei Dateien klappt es.

01.
   for /R "C:\skript\transfer" %%i in (*.*) do @echo %%~ti|findstr /v /i /g:"C:\skript\NL.txt"|find "%date%"||@echo %%~ti|find "%gestern%"|| del "%%~dpnxi" 
02.
   for /D %%i in (C:\skript\transfer\*.*) do @echo %%~ti|findstr /v /i /g:"C:\skript\NL.txt"|find "%date%"||@echo %%~ti|find "%gestern%"|| rd /s /q "%%i" 
03.
 
04.
   for /F "delims=" %%i in ('dir /b /s /ad C:\skript\transfer') do rd "%%i" 2>NUL

NL.txt
01.
nicht löschen 
02.
nicht loeschen 
03.
nl


mfg
Bitte warten ..
Mitglied: Skyemugen
28.09.2011 um 16:42 Uhr
Aloha,

... mal eine Nachfrage, wo soll er denn nicht löschen in der Ausgabe
28.09.2011 11:25 
28.09.2011 08:33 
28.09.2011 16:36
a.k.a. echo %%~ti finden?

Wenn dann würde er sie wohl nur bei echo %%i finden

greetz André

P.S.: @bastla
[Edit] @skye: http://www.administrator.de/helpsystem/de ... face-wink [/Edit]
I know aber dann vermisse ich die schwarzen Murmeln, die mehr Aufmerksamkeit geben als 1. und 2. their own
Bitte warten ..
Mitglied: bastla
28.09.2011 um 18:37 Uhr
@skye
wo soll er denn nicht löschen in der Ausgabe 28.09.2011 11:25 ... finden?
Jetzt wo Du's sagst ...

Ich hatte mich zwar über "%1" gewundert, dann aber nicht wirklich Zeit, mich ausreichend damit zu beschäftigen - deshalb auch nur die Aufforderung, eine passende Stelle für den "findstr"-Teil zu wählen ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
VB for Applications
Excel Makro zum Suchen von Spalten und exportieren in CSV (2)

Frage von Raptox zum Thema VB for Applications ...

Batch & Shell
gelöst Suchen ersetzen mit Sonderzeichen (2)

Frage von GNLen1 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (17)

Frage von Driphex zum Thema Exchange Server ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

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

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...