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-Key: 102817

Url: https://administrator.de/contentid/102817

Printed on: April 25, 2024 at 14:04 o'clock

Member: bastla
bastla Nov 27, 2008 at 14:55:07 (UTC)
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
Member: MrVain
MrVain Nov 27, 2008 at 15:12:29 (UTC)
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...
Mitglied: 60730
60730 Nov 27, 2008 at 15:56:11 (UTC)
Goto Top
servus,
das klappt leider nicht.
und unter welchem OS "klappt" es denn nicht?

Gruß
Member: bastla
bastla Nov 27, 2008 at 16:33:32 (UTC)
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
Member: MrVain
MrVain Dec 01, 2008 at 09:54:12 (UTC)
Goto Top
Hat geklappt, danke !

Ich hatte da wohl einen Schreibfehler...
Member: snakerl
snakerl Mar 15, 2011 at 12:34:50 (UTC)
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
Mitglied: 60730
60730 Mar 15, 2011 at 13:18:43 (UTC)
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ß
Member: snakerl
snakerl Mar 15, 2011 at 13:27:52 (UTC)
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? :/
Member: bastla
bastla Mar 15, 2011 at 13:59:25 (UTC)
Goto Top
Hallo snakerl!

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

Grüße
bastla
Member: snakerl
snakerl Mar 15, 2011 at 14:11:09 (UTC)
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