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

for Schleife mit Unterverzeichnissen

Frage Entwicklung Batch & Shell

Mitglied: InTreaTer

InTreaTer (Level 1) - Jetzt verbinden

26.05.2008, aktualisiert 27.05.2008, 6119 Aufrufe, 5 Kommentare

Hallo zusammen!

Ich habe bereits das passende Skript von Biber gefunden, nur leider läuft das nur im aktuellen Verzeichnis und nimmt nicht alle Unterverzeichnisse mit.

Folgendes soll geschehen:
- suche in allen Unterverzeichnissen alle msg-Dateien durch nach dem String xyz
- wenn du xyz in irgendeiner msg-Datei in irgendeiner Zeile findest, lösche die komplette Zeile
- die modifizierte Datei soll im selben Verzeichnis mit selben Namen bestehen bleiben

folgendes Skript von Biber läuft einwandfrei, aber nimmt eben nur das aktuelle Verzeichnis mit:
@echo off & setlocal
for %%i in (*.msg) DO (
findstr /v /b /i "xyz" "%%~fi">"%%~fi.bak"
move "%%~fi.bak" "%%~fi"
)


Wie kann ich das erweitern auf Unterverzeichnisse?



Danke vorab und Grüße,

Markus.
Mitglied: bastla
26.05.2008 um 14:27 Uhr
Hallo InTreaTer!

Etwa so:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in ('dir /s /b *.msg') do ( 
03.
    findstr /v /b /i "xyz" "%%i">"%%i.bak" 
04.
    move "%%i.bak" "%%i" 
05.
)
Grüße
bastla
Bitte warten ..
Mitglied: InTreaTer
27.05.2008 um 09:55 Uhr
leider nicht ganz. Der schreibt mir ALLE Dateien neu, nicht nur die mit xyz drin.
Bitte warten ..
Mitglied: bastla
27.05.2008 um 10:47 Uhr
Hallo InTreaTer!

Das war auch schon bei der oben geposteten Fassung so - geschrieben werden alle Zeilen, die nicht mit "xyz" beginnen.

Um das Neuschreiben von Dateien, die ohnehin den Suchbegriff nicht enthalten, zu vermeiden, müsste das etwa so aussehen:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in ('dir /s /b *.msg') do ( 
03.
    findstr /b /i "xyz" "%%i">nul && ( 
04.
        findstr /v /b /i "xyz" "%%i">"%%i.bak" 
05.
        move "%%i.bak" "%%i">nul 
06.
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: Biber
27.05.2008 um 10:55 Uhr
Moin Eintreter,

dann kannst Du es so ändern:

01.
@echo off 
02.
REM noch überflüssig:  & setlocal 
03.
for /f "delims=" %%i in ('findstr /s /m /b /i "xyz" "D:\einverz\*.msg"') do ( 
04.
        findstr /v /b /i "xyz" "%%i">"%%i.bak" 
05.
        move "%%i.bak" "%%i">nul 
06.
)
[ungetestet wie immer]

Das erste Findstr /s /m /b /i "xyz" "D:\einverz\*.msg" sucht in allen Unterverzeichnissen unter D:\Einverz nach *.msg-Dateien mit dem Suchtext "xyz" und liefert nur den Dateinamen (mit Pfad).
Ersetzt also das DIR in oberen Schnipsel.

Grüße
Biber
Bitte warten ..
Mitglied: InTreaTer
27.05.2008 um 14:00 Uhr
Hallo bastla,
hallo Biber,

die Methode von bastla hat zum Erfolg geführt. Jetzt haut es hin. Vielen Dank an dieser Stelle!

Bei dir, Biber ist ein Fehler im Skript. Eine Klammer ist hinter do auf jeden Fall zu wenig, aber irgendwas frisst er trotzdem nicht,...

Aber wie gesagt, es haut hin und das ist die Hauptsache


Viele Grüße,

Markus.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst FOR Schleife mit Unterverzeichnissen, die Ausgabe kürzen (tokens evtl.) (5)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
Abfrage ERRORLEVEL springt aus der FOR Schleife (6)

Frage von Galindiesel zum Thema Batch & Shell ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Windows Server
Windows Server 2012R2 Automatische-Reparatur Schleife - NEU (46)

Frage von hans-tu-was zum Thema Windows Server ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

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

Windows Server
Server 2012 R2 - Zugriff Verweigert bei jeglicher Tätigkeit (13)

Frage von DarkLevi zum Thema Windows Server ...