matze-pe
Goto Top

Bestimmte Wörter in Dateinamen suchen

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":


@echo %%~ti|find "%gestern%"
@echo %%~ti|find "%gestern%"

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
(
@echo %%~ti|find "%gestern%"
@echo %%~ti|find "%gestern%"

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


Vielen Dank im vorraus


mfg

Content-Key: 173823

Url: https://administrator.de/contentid/173823

Ausgedruckt am: 28.03.2024 um 09:03 Uhr

Mitglied: bastla
bastla 28.09.2011 um 11:24:34 Uhr
Goto Top
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: face-wink [/Edit]
Mitglied: Skyemugen
Skyemugen 28.09.2011 um 11:26:34 Uhr
Goto Top
Aloha,

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

greetz André

edit: too late
Mitglied: matze-pe
matze-pe 28.09.2011 um 11:36:22 Uhr
Goto Top
Stimmt :D Danke es klappt.

Manchmal sieht man den Wald vor lauter Bäumen nicht :D
Mitglied: matze-pe
matze-pe 28.09.2011 um 11:53:14 Uhr
Goto Top
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 face-smile


   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"  
   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"  

   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.
Mitglied: bastla
bastla 28.09.2011 um 12:10:41 Uhr
Goto Top
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
Mitglied: matze-pe
matze-pe 28.09.2011 um 12:29:27 Uhr
Goto Top
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.

   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"  
   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"  

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


NL.txt
nicht löschen
nicht loeschen
nl



mfg
Mitglied: Skyemugen
Skyemugen 28.09.2011 um 16:42:41 Uhr
Goto Top
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 face-wink

greetz André

P.S.: @bastla
[Edit] @skye: https://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 face-wink
Mitglied: bastla
bastla 28.09.2011 um 18:37:53 Uhr
Goto Top
@skye
wo soll er denn nicht löschen in der Ausgabe 28.09.2011 11:25 ... finden?
Jetzt wo Du's sagst ... face-wink

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