koenigdaniel
Goto Top

Ausgabe von tree Umlaute werden nicht richtig dargestellt

Hallo,

ich habe folgende Batchdatei in meinem sendto Ordner, um mir die Verzsichnisstruktur verschiedener Verzeichnisse ausgeben zu können.

@echo off
tree /a %1 > "%temp%\Ordnerinhalt.txt"  
start /w notepad "%temp%\Ordnerinhalt.txt"  

Leider halten sich nicht immer alle an die Vereinbarung keine Umlaute zu verwenden. Und so kommt es vor, dass in den Verzeichnissen Umlaute vorhanden sind, die bei der Ausgabe dann nicht richtig angezeigt werden.

Ausgabe (Beispiel):
Auflistung der Ordnerpfade fr Volume DATEN
Volumenummer: 2DBE-5C29
D:\DATEN\TEMP\UMLAUTE
+---AE-„-ae
+---OE-”-oe
\---UE--ue

Ich würde jetzt gerne das Skript dahingehend erweitern die falsch dargestellen Umlaute zu ersetzen.
ä -> ae, ö -> oe, ü -> ue.....

Leider komme ich mit den for-Schleifen immernoch nicht so richtig zu recht und bringe kein Ergebniss zustande.

Wenn mir jemand beim schreiben der for-Schleife fürs ersetzen Helfen könnte wäre ich Ihm sehr dankbar.

Vielen Dank

Gruß Daniel

Content-Key: 81084

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

Printed on: April 19, 2024 at 02:04 o'clock

Member: stbewo
stbewo Feb 19, 2008 at 11:30:10 (UTC)
Goto Top
Hi Daniel,

versuche es einmal mit "CHCP 850" oder "CHCP 1252" im Dos Fenster und anschl. Dein Tree. Bei mir werden mit 850 die Umlaute angezeigt.

Gruß
Stefan
Member: miniversum
miniversum Feb 19, 2008 at 11:31:29 (UTC)
Goto Top
Ist zwar unschön die Lösung aber sie Fumktioniert.
Einmal mit Ersetzung das wieder Umlaute zu sehen sind:
@echo off

FOR /F "delims=" %%i in ('tree') do call:ersetze "%%i"  
pause
goto:eof

:ersetze
set "line=%~1"  

set line=%line:„=ä%
set line=%line:”=ö%
set line=%line:=ü%

set line=%line:Ž=/%
set line=%line:™=Ö%
set line=%line:š=Ü%

set line=%line:á=ß%

set line=%line:Ã=+%
set line=%line:Ä=-%
set line=%line:À=\%
set line=%line:/=Ä%
set line=%line:³=^^^|%

echo %line%>>"Ordnerinhalt.txt"  
goto:eof

Und einmal mit Ersetzung das Umlaute in zwei Buchstaben umgewandelt werden:
@echo off

FOR /F "delims=" %%i in ('tree') do call:ersetze "%%i"  
pause
goto:eof

:ersetze
set "line=%~1"  

set line=%line:„=ae%
set line=%line:”=oe%
set line=%line:=ue%

set line=%line:Ž=/%
set line=%line:™=OE%
set line=%line:š=UE%

set line=%line:á=sz%

set line=%line:Ã=+%
set line=%line:Ä=-%
set line=%line:À=\%
set line=%line:/=AE%
set line=%line:³=^^^|%

echo %line%>>"Ordnerinhalt.txt"  
goto:eof

miniversum
Member: miniversum
miniversum Feb 19, 2008 at 11:33:04 (UTC)
Goto Top
Im Fenster werden sie angezeigt aber beim schreiben in eine Datei gehts dan schief.
Member: stbewo
stbewo Feb 19, 2008 at 11:50:53 (UTC)
Goto Top
Bei mir funktioniert es, da ich als Font "MS LineDraw" eingestellt habe.

Gruß
Stefan
Member: koenigdaniel
koenigdaniel Feb 19, 2008 at 11:57:42 (UTC)
Goto Top
Hi,

danke, so funktioniert es auf jeden Fall.
Auch wenn die Lösung vielleicht unschön ist, mir reicht sie und bringt das erwartete Ergebnis.