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, 3367 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...