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

Verschachtelte for-Schleife

Frage Entwicklung Batch & Shell

Mitglied: zbyszek

zbyszek (Level 1) - Jetzt verbinden

13.12.2012, aktualisiert 15:07 Uhr, 1625 Aufrufe, 2 Kommentare

Hallo zusammen!

ich versuche aus allen Dateien in einem Verzeichnis die Inhalte zu verändern.

in dem Verzeichnis liegen mehrere Dateien
z.B.

Daten_DB191_0001_20121110_092323.csv
Daten_DB192_0004_20121510_092321.csv
Daten_DB193_0002_20121760_092345.csv
....
....
....

Der Inhalt dieser Dateien muss verändert werden.
Dazu habe ich folgendes gefunden:
Dieses ändert aber nur den Inhalt einer Datei.
01.
SET "quell_datei=...." 
02.
SET "ziel_datei=...." 
03.
SET "suchen_nach= " 
04.
SET "ersetzen_durch=;" 
05.
 
06.
REM Ausgabe einer Fehlermeldung und Programmabbruch 
07.
REM falls die Variable "suchen_nach" nicht definiert ist 
08.
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert^^!&GOTO :eof) 
09.
 
10.
REM Loeschen der Ausgabedatei, falls sie (noch) existiert 
11.
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL) 
12.
for /f %%a in ('dir Fert*.csv') do ( 
13.
REM Quell-Datei zeilenweise auslesen  
14.
REM und in Variable "zeile" schreiben 
15.
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO ( 
16.
SET zeile=%%i& CALL :ersetzen !zeile! 
17.
18.
GOTO :weiter 
19.
:ersetzen 
20.
REM innerhalb der Variable "zeile" 
21.
REM den Inhalt der Variable "suchen_nach" suchen 
22.
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen 
23.
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%! 
24.
 
25.
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben 
26.
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%) 
27.
28.
GOTO :eof 
29.
 
30.
:weiter 
31.
REM weitere Verarbeitung 
32.
 
33.
ECHO Fertig^^!
Wie wird die übergeordnete for-Schleife gebildet damit die Änderung in allen Dateien durchgeführt wird?

For /f "tokens=1,2,3,4,5 delims=_" %%i in ('dir /b Daten*.csv') do set ?????


[Edit Biber] Codeformatierung [/Edit]
Mitglied: bastla
13.12.2012, aktualisiert um 22:25 Uhr
Hallo zbyszek!

Eher so (ungetestet):
01.
setlocal 
02.
SET "suchen_nach= " 
03.
SET "ersetzen_durch=;" 
04.
set "Zusatz=_neu" 
05.
 
06.
REM Ausgabe einer Fehlermeldung und Programmabbruch 
07.
REM falls die Variable "suchen_nach" nicht definiert ist 
08.
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert^^!&GOTO :eof) 
09.
 
10.
for /f %%a in ('dir /b Daten*.csv') do ( 
11.
    REM Loeschen der Ausgabedatei, falls sie (noch) existiert 
12.
    del /f "%%~na_neu%%~xa" 
13.
    set "ziel_datei=%%~na%Zusatz%%%~xa" 
14.
    REM Quell-Datei zeilenweise auslesen  
15.
    REM und in Variable "zeile" schreiben 
16.
    FOR /f "delims=" %%i IN ('FINDSTR . "%%a"') DO ( 
17.
        SET "zeile=%%i" & CALL :ersetzen 
18.
19.
20.
GOTO :weiter 
21.
 
22.
:ersetzen 
23.
REM innerhalb der Variable "zeile" 
24.
REM den Inhalt der Variable "suchen_nach" suchen 
25.
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen 
26.
setlocal enabledelayedexpansion 
27.
SET "zeile=!zeile:%suchen_nach%=%ersetzen_durch%!" 
28.
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben 
29.
>>"%ziel_datei%" ECHO(!zeile! 
30.
endlocal 
31.
GOTO :eof 
32.
 
33.
:weiter 
34.
REM weitere Verarbeitung 
35.
 
36.
ECHO Fertig^^!
Grüße
bastla
Bitte warten ..
Mitglied: zbyszek
14.12.2012 um 08:34 Uhr
Vielen Dank läuft super !
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
gelöst Abfrage ERRORLEVEL springt aus der FOR Schleife (8)

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

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (8)

Frage von ahaeuser zum Thema Windows Server ...