CSV Manipulation Batch oder PS
Guten Morgen allerseits,
ich bin zwar neu in diesem Forum, möchte mich aber künftig in der Community einfinden, aber wie jeder User habe ich zunächst eine Frage, womit ich dringend Hilfe benötige, da ich absolut auf dem Schlauch stehe.
Ausgangssituation:
Ich benötige ein Batch oder Powershell Script, welches eine CSV einliest und in einer Spalte (C,3) die Kommas entfernt, da in der restlichen Datei keine Kommas entfernt werden dürfen. Mein Delimiter ist hierbei ";".
Ich habe bereits Ansätze versucht, komme aber leider nie zu dem gewünschten Ergebnis, auch unter dem Gesichtspunkt, dass ich immer wieder was ändere und schaue was mir die generierte CSV ausspuckt, bisher aber leider nichts was ich verarbeiten könnte:
Oder bin ich mit meinem bisherigen Fortschritt völlig auf dem Holzweg ?
Viele Grüße und Danke im Voraus
PS: Leider bin ich mit Powershell noch ungeübter und hoffe dass ihr mir das verzeihen könnt. Würde auch einen Kaffee spendieren, wenn mir jemand nettes der mir hilft
ich bin zwar neu in diesem Forum, möchte mich aber künftig in der Community einfinden, aber wie jeder User habe ich zunächst eine Frage, womit ich dringend Hilfe benötige, da ich absolut auf dem Schlauch stehe.
Ausgangssituation:
Ich benötige ein Batch oder Powershell Script, welches eine CSV einliest und in einer Spalte (C,3) die Kommas entfernt, da in der restlichen Datei keine Kommas entfernt werden dürfen. Mein Delimiter ist hierbei ";".
Ich habe bereits Ansätze versucht, komme aber leider nie zu dem gewünschten Ergebnis, auch unter dem Gesichtspunkt, dass ich immer wieder was ändere und schaue was mir die generierte CSV ausspuckt, bisher aber leider nichts was ich verarbeiten könnte:
@echo off
SETLOCAL enabledelayedexpansion
REM Quellpfad
SET "quell_datei=count_export.csv"
REM Zielpfad
SET "ziel_datei=count_export_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 Lösche Zieldatei, falls bereits vorhanden
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)
REM Quelldatei zeilenweise auslesen und in Variable "zeile" schreiben
for /f "usebackq tokens=1-3 delims=;" %%i in ('findstr /n "," "count_export.csv"') 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
Oder bin ich mit meinem bisherigen Fortschritt völlig auf dem Holzweg ?
Viele Grüße und Danke im Voraus
PS: Leider bin ich mit Powershell noch ungeübter und hoffe dass ihr mir das verzeihen könnt. Würde auch einen Kaffee spendieren, wenn mir jemand nettes der mir hilft
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 640478
Url: https://administrator.de/forum/csv-manipulation-batch-oder-ps-640478.html
Ausgedruckt am: 04.05.2025 um 09:05 Uhr
6 Kommentare
Neuester Kommentar

Pfade/Dateinamen und den Spaltennamen in Zeile 2 an deine Bedürfnisse anpassen
Powershell:
Powershell:
$csv = Import-CSV '.\datei.csv' -Delimiter ";"
$csv | %{$_.'ÜberschriftDerSpalte3' = $_.'ÜberschriftDerSpalte3' -replace ','}
$csv | export-csv '.\datei_neu.csv' -Delimiter ";" -NoType -Encoding UTF8

Du musst die Skriptausführung einmalig über die Executionpolicy in einer elevated Powershell freischalten.
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
Oder alternativ das Skript über Bypass aufrufen
Gruß bw.
Set-Executionpolicy RemoteSigned
Oder alternativ das Skript über Bypass aufrufen
powershell -EP Bypass -File "D:\script.ps1"

Zitat von @pausenbrotnascher:
Ja stimmt, ich hatte das schon nachgeschaut und mit Bypass hat es geklappt. Stellt das dahingehend ein Sicherheitsrisiko dar ?
Mit generellen Änderung der Policy natürlich auch. Wenn du dein Skript auch für andere bearbeitbar ablegst und das ganze mit nem elevated Account machst dann ja Ja stimmt, ich hatte das schon nachgeschaut und mit Bypass hat es geklappt. Stellt das dahingehend ein Sicherheitsrisiko dar ?
p.s. Danke auch nochmal für den Kaffee ! 👍
Bleib gesund.
bw.