syce
Cadet 1st Year
- Registriert
- Aug. 2018
- Beiträge
- 12
Guten Abend miteinander und ein frohes neues Jahr! ,
hatte vor einiger Zeit mal eine Anfrage für ein Suchen Ersetzen Script via Batch gestellt, allerdings hat dieses die gesamte CSV geändert, allerdings möchte ich die Änderungen lediglich in einer bestimmten Spalte (C bzw. 3) geändert haben.. Kann man das mit einer Batch überhaupt realisieren ? Habe gelesen mit tokens und delim könnte es gehen, aber leider kenn ich mich da nicht so gut aus. So sieht mein Script bisher aus:
Danke euch im Voraus für eine Hilfestellung, ich verzweifle da noch :-D
Möglich wäre laut Netz auch VBScript?
Viele Grüße
Syce
hatte vor einiger Zeit mal eine Anfrage für ein Suchen Ersetzen Script via Batch gestellt, allerdings hat dieses die gesamte CSV geändert, allerdings möchte ich die Änderungen lediglich in einer bestimmten Spalte (C bzw. 3) geändert haben.. Kann man das mit einer Batch überhaupt realisieren ? Habe gelesen mit tokens und delim könnte es gehen, aber leider kenn ich mich da nicht so gut aus. So sieht mein Script bisher aus:
Bash:
@echo off
SETLOCAL enabledelayedexpansion
REM Pfad zur Quell-Datei
SET "quell_datei=bestand_real_edit.csv"
REM Pfad zur Ziel-Datei
SET "ziel_datei=bestand_real_final.csv"
REM diese Zeichenfolge wird gesucht : Kommata
SET "suchen_nach=,"
REM Funde werden ersetzt durch : nix / überschrieben / Komma wird entfernt
SET "ersetzen_durch="
REM Hinweis wenn suchen_nach nicht gesetzt wurde
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert^^!&GOTO :eof)
REM Loeschen der Zieldatei, falls diese schon vorhanden ist
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)
REM Quelldatei zeilenweise auslesen und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :weiter
:ersetzen
REM Inhalt von 'suchen_nach' suchen + "ersetzen_durch" durchführen
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%!
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof
Danke euch im Voraus für eine Hilfestellung, ich verzweifle da noch :-D
Möglich wäre laut Netz auch VBScript?
Viele Grüße
Syce