Batch Leerzeichen in nur bestimmten Spalten entfernen?
Hallo, erstmal allen ein schönes Pfingstwochenende!
Ich suche gerade nach einer Möglichkeit per Batch in einer Csv mit mehrerer Spalten,
nur in den ersten beiden Spalten %%a & %%b die Leerzeichen zu entfernen, geht sowas?
VG
Ich suche gerade nach einer Möglichkeit per Batch in einer Csv mit mehrerer Spalten,
nur in den ersten beiden Spalten %%a & %%b die Leerzeichen zu entfernen, geht sowas?
VG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 339807
Url: https://administrator.de/contentid/339807
Ausgedruckt am: 23.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Moin.
Kannst du dir hiermit selbst beantworten:
Siehe: http://www.dostips.com/DtTipsStringManipulation.php#Snippets.Replace
In der Schleife musst du dann aber mit call set oder delayedexpansion arbeiten.
bsp.
Ich würde für CSV-Dateien trotzdem die Powershell bevorzugen, schon wegen Umlaut&Co und Zeilenlängenbegrenzung in Batch, Behandlung von aufeinanderfolgende Trennzeichen etc. pp. Damit ist das viel konsistenter.
In Powershell sieht das bspw. so aus
Spaltennamen natürlich an die verwendeten anpassen.
Gruß Bibersbaum
Kannst du dir hiermit selbst beantworten:
set "test=Hallo ich habe leerzeichen" && echo %test: =%
In der Schleife musst du dann aber mit call set oder delayedexpansion arbeiten.
bsp.
@echo off
for /f "usebackq delims=;" %%a in ("C:\datei.csv") do (
set "spalte1=%%a"
set "spalte2=%%b"
setlocal enabledelayedexpansion
echo(!spalte1: =!
echo(!spalte2: =!
endlocal
)
In Powershell sieht das bspw. so aus
$csv = Import-CSV 'C:\daten.csv' -Delimiter ";"
$csv | %{
$_.'Spalte1' = $_.'Spalte1'.replace(' ','')
$_.'Spalte2' = $_.'Spalte2'.replace(' ','')
}
$csv
Gruß Bibersbaum
Hallo,
Eine .csv hat keine Spalten. Erst dein Anzeigeprogramm z.B. Excel macht Spalten daraus, nämlich dort wo das trennzeichen ist welches für diese Datei vorgesehen wurde. Die Trennzeichen z.B. ; definieren wo deine Spalten sind. z.B. "Ich";"war;;;""hier". Da sind 2 Spalten definiert.
Wie genau sieht denn deine .csv tatsächlich innen drin aus? Ansicht nicht mit Worpad oder Editoren die einige Zeichen anders Darstellen als diese tatsächlich enthalten sind. z. Notepad++ oder Norton Comander oder FAR Managar.
Danach kannst du dran gehen deine aufeinanderfolgenden Trennzeichen zu entfernen. Enthalten diese Spalten etwa auch noch Werte dann einfach alles bis zum 3ten Feldtrennzeichen (Delimiter) entfernen und die restlichen Zeile abspeichern usw.
CSV mit batch bearbeiten - auslesen
CSV Datei auslesen per Batch
CSV per Batch bearbeiten und als neue csv speichern
Per BAT CSV bestimmte Spalten und Zeilen auslesen und übertragen
Spalten in einer .csv anders anordnen oder tauschen
Und wie ist es das ganze per Powershell zu machen?
Gruß,
Peter
Eine .csv hat keine Spalten. Erst dein Anzeigeprogramm z.B. Excel macht Spalten daraus, nämlich dort wo das trennzeichen ist welches für diese Datei vorgesehen wurde. Die Trennzeichen z.B. ; definieren wo deine Spalten sind. z.B. "Ich";"war;;;""hier". Da sind 2 Spalten definiert.
nur in den ersten beiden Spalten %%a & %%b die Leerzeichen zu entfernen, geht sowas?
Nimm Excel.Wie genau sieht denn deine .csv tatsächlich innen drin aus? Ansicht nicht mit Worpad oder Editoren die einige Zeichen anders Darstellen als diese tatsächlich enthalten sind. z. Notepad++ oder Norton Comander oder FAR Managar.
Danach kannst du dran gehen deine aufeinanderfolgenden Trennzeichen zu entfernen. Enthalten diese Spalten etwa auch noch Werte dann einfach alles bis zum 3ten Feldtrennzeichen (Delimiter) entfernen und die restlichen Zeile abspeichern usw.
CSV mit batch bearbeiten - auslesen
CSV Datei auslesen per Batch
CSV per Batch bearbeiten und als neue csv speichern
Per BAT CSV bestimmte Spalten und Zeilen auslesen und übertragen
Spalten in einer .csv anders anordnen oder tauschen
Und wie ist es das ganze per Powershell zu machen?
Gruß,
Peter