mrvain
Goto Top

Batch Umlaute in txt Datei schreiben

Hallo

ich habe eine Batch Datei geschrieben, mit Eingaben vom Benutzer

set /p i=Eingabe:

etc...

mit echo %i% >1.txt

habe ich diese Eingabe in eine TXT Datei gespeichert. Nun möchte ich dort aber auch Umlaute übergeben.

Wie mache ich das?

Content-ID: 102817

Url: https://administrator.de/forum/batch-umlaute-in-txt-datei-schreiben-102817.html

Ausgedruckt am: 23.12.2024 um 09:12 Uhr

bastla
bastla 27.11.2008 um 15:55:07 Uhr
Goto Top
Hallo MrVain!

Nun möchte ich dort aber auch Umlaute übergeben.
Was Du vermutlich möchtest, ist diese Umlaute nicht im ASCII-, sondern im ANSI-Format zu speichern (damit Du sie in Windows auch "wiedererkennst" face-wink).

Dazu müsstest Du am Anfang des Batches mit
chcp 1252>nul
eine passende Codepage aktivieren. Solltest Du die vorher eingestellte CP (vermutlich 850) danach wieder herstellen wollen, dann etwa so:
for /f "tokens=2 delims=:." %i in ('chcp') do set "CP=%i"  
chcp 1252>nul
...
chcp %CP%>nul
Grüße
bastla
MrVain
MrVain 27.11.2008 um 16:12:29 Uhr
Goto Top
Danke für die Antwort,

das klappt leider nicht.

Die txt beinhaltet "Blte " (zwischen B und l ist ein Rechteck) anstatt "Bülte", wenn ich die txt mit Wordpad öffne...

Ich brauche jedoch die Umlaute in der txt-Datei...
60730
60730 27.11.2008 um 16:56:11 Uhr
Goto Top
servus,
das klappt leider nicht.
und unter welchem OS "klappt" es denn nicht?

Gruß
bastla
bastla 27.11.2008 um 17:33:32 Uhr
Goto Top
Hallo MrVain!

Dann das Ganze nochmal als Batch:
@echo off & setlocal
for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i"  
chcp 1252>nul
set /p i=Eingabe: 
::
:: whatever
::
echo %i%>1.txt
chcp %CP%>nul
pause
write 1.txt
Grüße
bastla
MrVain
MrVain 01.12.2008 um 10:54:12 Uhr
Goto Top
Hat geklappt, danke !

Ich hatte da wohl einen Schreibfehler...
snakerl
snakerl 15.03.2011 um 13:34:50 Uhr
Goto Top
Sorry fürs Ausgraben, aber ich habe exakt das selbe Problem!

Theoretisch funktioniert das da oben ja, aber bei der Eingabe des eigenen Names wird einem ja dennoch das falsche Zeichen ausgegeben, auch wenn es am Ende in der TXT stimmt. Weiß jemand warum bzw: wie kann ich das Zeichen während der Eingabe UND in der Ausgabe der TXT korrekt darstellen lassen?

Danke schon mal face-smile

EDIT:
Zur Veranschaulichung, hier mal Jürgen Pöbler, und seine Probleme ;)
http://img863.imageshack.us/img863/4267/screen36.jpg
60730
60730 15.03.2011 um 14:18:43 Uhr
Goto Top
Moin,

bzw: wie kann ich das Zeichen
  • ähh nein - genau das Zeichen - dazu fällt mir spontan nix ein.

btw: Benutzernamen wählt man aus gutem Grund immer mit ohne Sonderzeichensalat.

Gruß
snakerl
snakerl 15.03.2011 um 14:27:52 Uhr
Goto Top
Hi, nein, also Background is folgender:
Ich habe ein Script geschrieben, welches die Outlook-Signatur meiner Firma erstellt. Natürlich ist dabei der Emailname ohne Umlaute ;)
Dennoch steht in der Signatur natürlich immer auch der richtige Name, also zb Jürgen Pöbler (erfundener Name).

Das Script und das Unterschieben der erstellten .txt und .html stellt kein Problem dar, klappt auch ganz großartig. Nur eben bei Leuten mit Umlauten/Eszett im Vor/Nachnamen gibts Probleme ...

Andere Ideen, wie ich das umsetzen könnte? :/
bastla
bastla 15.03.2011 um 14:59:25 Uhr
Goto Top
Hallo snakerl!

Schalte die Codepage eben erst nach der Eingabe um ...

Grüße
bastla
snakerl
snakerl 15.03.2011 um 15:11:09 Uhr
Goto Top
LOL
Man, bin ich blöd (mit ÖÖÖÖÖÖÖÖÖ :D), danke Bastla.

Somit ergibt sich folgende Lösung für mich:


for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i"

SET /p VORNAME=Bitte geben Sie Ihren Vornamen an:
SET /p NACHNAME=Bitte geben Sie Ihren Nachnamen an:

chcp 1252>nul
echo %vorname% %nachname% > "%userprofile%\test.txt"
chcp %CP%>nul

Man is das peinlich, da hätte ich ja echt ma selber drauf kommen können :D