Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 1496 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateien aus CSV mit Batch suchen (5)

Frage von joes1609 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suche Batch-Programm zum Zusammenfügen zweier PDF-Dateien (3)

Frage von Sinzal zum Thema Batch & Shell ...

Batch & Shell
Dateien mit Liste suchen (16)

Frage von 132351 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(9)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...

LAN, WAN, Wireless
gelöst 802.1X-Authentifizierung (13)

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