Mit Batch .csv Datei in UTF-8 erstellen
Hallo zusammen,
ich bin noch sehr neu im Bereich Batch-Skripte und habe ein Problem, dass ich nicht gelöst bekomme.
Ich habe ein Skript erstellt, das mehrere Daten aus Active Directory ausliest, und anschließend in .txt und .csv Dateien ausgibt.
Nun werden in den .txt Dateien alle Buchstaben korrekt dargestellt (äöüß), in der .csv allerdings nicht. Als zweite Zeile in meinem Skript habe ich den Befehl
"chcp 65001"
gesetzt.
Die Ausgabe funktioniert jeweils mit
"echo %Ausgabe% > %Dateiname%.txt"
"echo %Ausgabe% > %Dateiname%.csv"
Muss ich bei .csv Dateien etwas spezielles beachten oder ist es da eventuell gar nicht möglich?
Danke für die Hilfe
ich bin noch sehr neu im Bereich Batch-Skripte und habe ein Problem, dass ich nicht gelöst bekomme.
Ich habe ein Skript erstellt, das mehrere Daten aus Active Directory ausliest, und anschließend in .txt und .csv Dateien ausgibt.
Nun werden in den .txt Dateien alle Buchstaben korrekt dargestellt (äöüß), in der .csv allerdings nicht. Als zweite Zeile in meinem Skript habe ich den Befehl
"chcp 65001"
gesetzt.
Die Ausgabe funktioniert jeweils mit
"echo %Ausgabe% > %Dateiname%.txt"
"echo %Ausgabe% > %Dateiname%.csv"
Muss ich bei .csv Dateien etwas spezielles beachten oder ist es da eventuell gar nicht möglich?
Danke für die Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7298585988
Url: https://administrator.de/contentid/7298585988
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
8 Kommentare
Neuester Kommentar
Hi.
[content:264228]
Anbei ein Link aus dem Forum hier, vielleicht hilft Dir das weiter bzw. kannst das ein wenig adaptieren.
Gruß
neu im Bereich Batch-Skripte
Ich weiß nicht was Du genau vor hast aber wenn Du dich bereits an Batch heranwagst, wäre es vielleicht sinnig sich von der steinaltsprache Batch einfach zu trennen und direkt mit Powershell anzufangen. Da wäre dein Problem relativ einfach gelöst.[content:264228]
Anbei ein Link aus dem Forum hier, vielleicht hilft Dir das weiter bzw. kannst das ein wenig adaptieren.
Gruß
Muss ich bei .csv Dateien etwas spezielles beachten oder ist es da eventuell gar nicht möglich?
Eine csv ist erst mal auch nur eine reine Textdatei nur die Dateiendung ist anders. Du musst aber sicherstellen das deine Anwendung die die CSV einliest auch das richtige Encoding für die Interpretation der Daten verwendet, automatische Erkennung ist oft nicht zuverlässig, dann musst du manuell in der jeweiligen Anwendung für den Import auf UTF8 umstellen.Besser ist es wie gesagt gleich auf Powershell umzusteigen, damit ist das Handling beim Encoding wesentlich konsistenter und man hat auch die Möglichkeit Dateien mit einem BOM zu versehen was der Anwendung explizit mitteilt welches Encoding verwendet wird, sofern die Anwendung damit klar kommt. Bei Batch gibt es da einige Fallen was das Encoding angeht weil nicht alle dort verfügbaren Befehle das eingestellte Encoding der Konsole beachten.
Gruß
Zitat von @grotLovin:
Nun werden in den .txt Dateien alle Buchstaben korrekt dargestellt (äöüß), in der .csv allerdings nicht. Als zweite Zeile in meinem Skript habe ich den Befehl
Nun werden in den .txt Dateien alle Buchstaben korrekt dargestellt (äöüß), in der .csv allerdings nicht. Als zweite Zeile in meinem Skript habe ich den Befehl
Womit öffnest Du die CSV, um zu der Feststellung zu kommen, dass es da nicht geklappt hat? Falls per Doppelklick mit Excel: Da habe ich es auch oft, dass er Umlaute aus einer CSV-Datei falsch umsetzt. Das klappt mit LibreOffice besser. Da ich beides auf dem Rechner habe, öffene ich die CSV in solchen Fällen erst mit LibreOffice, speichere sie dort im XLSX-Format und öffne sie dann in Excel. Es geht aber natürlich auch wie Ultramatic beschrieben hat, indem man den Import manuell auf UTF-8 umstellt.
Dann mache ich mich mal an Powershell und versuche es damit. Vielen Dank
Gerne. Falls Du Unterstützung brauchst, meld Dich hier im Forum wieder. Es rennen hier einige PS-Pros rum, die Bock haben! Gruß
Simples Beispiel
https://www.windowspro.de/script/csv-dateien-powershell-erstellen-sortie ...
$data = @()
$data += [pscustomobject]@{
Spalte1 = "Daten 1"
Spalte2 = "Daten 2"
}
$data += [pscustomobject]@{
Spalte1 = "Daten 3"
Spalte2 = "Daten 4"
}
$data | export-csv .\data.csv -delimiter ";" -NoTypeInformation -Encoding UTF8
https://www.windowspro.de/script/csv-dateien-powershell-erstellen-sortie ...
Simples Beispiel
.. ich sag ja, die ham bock! :D