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

Suchen und ersetzten in Batch datei

Frage Entwicklung Batch & Shell

Mitglied: bacardischmal

bacardischmal (Level 1) - Jetzt verbinden

13.11.2012, aktualisiert 09:09 Uhr, 1482 Aufrufe, 2 Kommentare

Hallo,

ich habe hier eine kleine Batch Datei in der unter anderem dieser Teil steckt. Dort werden die Zahlen aus einer CSV-Datei in eine andere Formatierung gebracht und eine TXT datei angelegt. Nun ist das Problem das unter %%w ab und zu anstelle von Zahlen --- vorhanden sind, kann ich irgendwie beim durchlaufen aus den --- einfach ein leerzeichen machen? Kann ich das mit in die For schleife bauen oder muss ich dafür eine neue machen?

mfg bacardi


[code]
@ECHO off
SETLOCAL enabledelayedexpansion

SET "quell_datei="G:\Import.csv""
SET "ziel_datei="d:\ziel.txt""
SET "log_datei="d:\script\log.txt"

SET "N=0"



if %N% GTR 0 set SKIP="SKIP=%N%" else set SKIP=

REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)

REM Quell-Datei zeilenweise auslesen
REM und in Variable "zeile" schreiben
FOR /f "usebackq %SKIP% tokens=1-5 delims=; " %%s in (%quell_datei%) DO (
SET zeile=%%s %%t %%w &CALL :schreiben
)
GOTO :weiter


:schreiben
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof


:weiter
[/code]

Mitglied: bastla
13.11.2012, aktualisiert um 09:28 Uhr
Hallo bacardischmal!

Da Du ohnehin "delayedExpansion" verwendest, brauchst Du eigentlich kein Unterprogramm - es sollte daher (ungetestet) auch so gehen:
01.
ECHO off 
02.
SETLOCAL enabledelayedexpansion 
03.
 
04.
SET quell_datei="G:\Import.csv" 
05.
SET ziel_datei="d:\ziel.txt" 
06.
SET log_datei="d:\script\log.txt" 
07.
 
08.
SET /a N=0 
09.
 
10.
########################################################################################################### 
11.
 
12.
if %N% GTR 0 set SKIP="SKIP=%N%" else set "SKIP=" 
13.
 
14.
REM Loeschen der Ausgabedatei, falls sie (noch) existiert 
15.
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL) 
16.
 
17.
REM Quell-Datei zeilenweise auslesen 
18.
REM und in Variable "zeile" schreiben 
19.
FOR /f "usebackq %SKIP% tokens=1-5 delims=; " %%s in (%quell_datei%) DO ( 
20.
    SET zeile=%%s %%t %%w 
21.
    IF "%%w"=="---" SET zeile=%%s %%t 
22.
    REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben 
23.
    IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%) 
24.
)
Grüße
bastla

P.S.: Für Die "Code"-Formatierung bitte anstelle von "[code]" hier "<code>" verwenden ...
Bitte warten ..
Mitglied: bacardischmal
13.11.2012 um 18:11 Uhr
Hallo,
danke funktioniert

gruß
bacardi
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hardware
Laptop ins Salzwasser gefallen (16)

Frage von Marcel94 zum Thema Hardware ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (12)

Frage von thomasreischer zum Thema Hardware ...