Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 19
Danke Übersicht16Danke
Thema: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe Ich habe Probleme mit der Anzeige von Umlauten, also äöüß, bei folgender Aktion: Gelegentlich lasse ich mir Befehlsoptionen in der ...
  1. #1
    PeteM92
    gehört zum Inventar

    Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Ich habe Probleme mit der Anzeige von Umlauten, also äöüß, bei folgender Aktion:

    Gelegentlich lasse ich mir Befehlsoptionen in der Eingabeaufforderung anzeigen. Dabei sind die meisten Ausgaben recht lang und ich leite sie zur leichteren Lesbarkeit in eine Datei um.

    Beispiel:
    Win+r > cmd öffnet die Eingabeaufforderung.
    Dort gibt powercfg /? die möglichen Optionen aus mit korekter Darstellung der Umlaute (siehe Screenshot).

    Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe-bildschirm.png

    Jetzt leite ich die Ausgabe in eine Datei um:
    powercfg /? >c:\powercfg.txt

    Beim Öffnen dieser Datei mit Notepad fehlen die Umlaute (siehe Screenshot2).

    Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe-notepad.png

    Auch bei anderen Texteditoren wie Notepad++ oder auch Word muß ich die Zeichencodierung erst mal umständlich auf Westeuropäisch/OEM850 umstellen, bevor die Anzeige der Umlaute richtig erscheint.

    Kennt jemand eine einfache Lösung, bei der die Textausgabe in eine Datei gleich im "richtigen" Format erfolgt? Oder gibt´s eine andere Lösung?

  2. #2
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Hallo PeteM92,
    verwende dafür mal Windows PowerShell wie folgt:
    Code:
    POWERCFG /? | Out-File -FilePath "$env:UserProfile\Documents\POWERCFG.txt" -append
    Nachtrag zur Antwort von @areiland
    Code:
    @ECHO OFF
    COLOR 9F
    CHCP 1252 >NUL
    ECHO Geben Sie einen Befehl ein:
    SET /p INFO=Befehl: 
    %INFO% /? > "%USERPROFILE%\Documents\%INFO%.txt"
    EXIT
    Geändert von skorpion68 (12.06.2017 um 10:44 Uhr) Grund: Nachtrag
    PeteM92 bedankt sich.

  3. #3
    areiland
    Computer Legastheniker Avatar von areiland

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Stell die Codepage vorher mit dem Befehl chcp 1252 um, dann bekommst Du die Ausgabe korrekt geschrieben.
    skorpion68 und PeteM92 bedanken sich.

  4. #4
    PeteM92
    gehört zum Inventar

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Danke für die Antworten!

    @areiland: das funktioniert, aber ich muß das in jedem cmd-Fenster neu eingeben. Gibt´s da eine Möglichkeit, das in Windows permanent umzustellen?

    @skorpion68: das Batchfile von areiland funktioniert auch, danke an Euch beide, aber wenn es das permanente Umstellen gäbe, wäre mir das die liebste Lösung.

    Grüße
    skorpion68 bedankt sich.

  5. #5
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Du könntest Dir eine Verknüpfung wie folgt erstellen:
    Code:
    C:\Windows\System32\cmd.exe /K CHCP 1252 >NUL
    Geändert von skorpion68 (12.06.2017 um 10:48 Uhr) Grund: Code angepasst
    PeteM92 bedankt sich.

  6. #6
    PeteM92
    gehört zum Inventar

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Danke, ist auch hilfreich.
    Ich werde mal versuchen, das in das WinX-Menü für Eingabeaufforderung und Eingabeaufforderung(Administrator) einzubauen.

  7. #7
    areiland
    Computer Legastheniker Avatar von areiland

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Eine weitere Möglichkeit wäre, dass man sich solche Sachen als Verknüpfung anlegt und dem Befehl dann jeweils ein:
    Code:
     cmd /c chcp 1252 >nul &
    voranstellt.

    So wird für die Ausgabe die Codepage geändert, die zugehörige Stausmeldung unterdrückt und dann der eigentliche Befehl ausgeführt - der seine Ausgabe jetzt korrekt codiert in das Textfile schreibt. Anders als mit dem Parameter /k, der Cmd geöffnet belässt und auf Eingaben wartet, schliesst Cmd hier nach Abarbeitung der Befehlszeile. Mit etwas Kreativität lassen sich auf diese Weise richtig schöne Batches realisieren, die aus nicht mehr als der Befehlszeile einer Verknüpfung bestehen. Der Vorteil, wenn man dazu in den Eigenschaften der Verknüpfung noch einstellt, dass das Fenster minimiert öffnen soll, bekommt man nur noch eine aufblitzende Taskleistenschaltfläche zu sehen.
    Geändert von areiland (12.06.2017 um 10:54 Uhr) Grund: Korrektur!
    skorpion68 und PeteM92 bedanken sich.

  8. #8
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Zitat Zitat von areiland
    Anders als mit dem Parameter /k, der Cmd geöffnet belässt und auf Eingaben wartet, schliesst Cmd hier nach Abarbeitung der Befehlszeile.
    Ich bin mir nicht ganz sicher ob dies nicht so gewollt war. Die Umleitung der Ausgabe nach >NUL habe ich mal oben eingefügt.

  9. #9
    areiland
    Computer Legastheniker Avatar von areiland

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Mit dem Parameter /k kannst Du eben eine Eingabeaufforderung öffnen, der Du gleich passende Einstellungen mitgibst und mit der arbeiten. Mein Ansatz ist der, dass man das Cmd Fenster gar nicht erst sichtbar öffnet, sondern lediglich passende Befehlszeilen ausführt und sich die als Verknüpfungen ablegt.

    Ich hab mir auf diese Weise schon eine ganze Bibliothek von Verknüpfungen angelegt, mit denen ich vieles an Informationen auslese. Auch für die Powershell hab ich da einiges gesammelt. Hierfür muss man dann aber die Ausführungsrichtlinie ändern, damit lokale Skripte ausgeführt werden können. Dann ist es z.B. möglich auf Doppelklick mal eben den Inhalt des Systemlogs auflisten zu lassen oder andere Informationen auszulesen und darzustellen. Da ich bei sowas gerne auf die Filtermöglichkeiten von Out-Gridview zurückgreife, realisiere ich das dann eher als Powershellzeile.
    Geändert von areiland (13.06.2017 um 11:21 Uhr) Grund: Korrektur!
    PeteM92 und skorpion68 bedanken sich.

  10. #10
    .Bernd
    gehört zum Inventar Avatar von .Bernd

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Ich würde den Editor Notepad auch durch Notepad++ ersetzen. In einem meiner Tools ist das eine OEM2ANSI Wandlung.
    Code:
    Func oem2ansi()
      $OutputUnicodeString = $sInputText
      $char = ASC ($sInputText)
      Select
         Case $char = 132
            $OutputUnicodeString = "ä"
         Case $char = 148
            $OutputUnicodeString = "ö"
         Case $char = 129
            $OutputUnicodeString = "ü"
         Case $char = 142
            $OutputUnicodeString = "Ä"
         Case $char = 153
            $OutputUnicodeString = "Ö"
         Case $char = 154
            $OutputUnicodeString = "Ü"
         Case $char = 225
            $OutputUnicodeString = "ß"
      EndSelect
    EndFunc
    Ursache ist nicht zwingend PS, sondern auch die Dosbox/EA. chcp sagt mir 850.
    PeteM92 bedankt sich.

  11. #11
    PeteM92
    gehört zum Inventar

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Hallo an alle,

    vielen Dank für Eure Vorschläge.

    ich habe das in Post #2 genannte Batchfile getestet und die Lösung in #5. Beides funktioniert gut, aber erfordert eingewisses vorausschauendes Vorgehen...

    Ich denke, ich werde mir ein Tastenkürzel anlegen für "chcp 1252", damit das Umschalten der Codepage in der Eingabeaufforderung / Eingabeaufforderrung (Admin) bequem wird. Das läßt sich dann bei Bedarf schnell ausführen, ohne die EingAuff verlassen zu müssen (Tastenkürzel #cp oder so) und dürfte auch in der Powershell funktionieren.

    Die Lösung von .Bernd habe ich nicht ganz verstanden. Ich benutze Notepad++, dort kann ich auch die Codierung umstellen auf Westeuropäisch OEM850. Dann wird der Text auch richtig angezeigt, aber das sind 4 unbequeme Mausclicks in langen Scroll-Down-Menüs. Wie kann man diese Funktion in NP++ einbauen und einfach aufrufen? (Ein generelles Umstellen von NP++ will ich nicht machen, historisch bedingt).
    skorpion68 bedankt sich.

  12. #12
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    In der Windows PowerShell ist dies nicht notwendig da dort die Textdatei gleich mit Umlauten erstellt wird weshalb ich dies als erstes vorgeschlagen hatte.
    PeteM92 und .Bernd bedanken sich.

  13. #13
    PeteM92
    gehört zum Inventar

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    @skorpion68,

    das stimmt, habe ich gerade ausprobiert (ich nehme normalerweise die Powershell nicht oft her).

    Dafür ist die Textdatei aus Powershell genau doppelt so groß wie die aus der Eingabeaufforderung! (das stört mich allerdings nicht, das ist mir nur gerade aufgefallen).

    Aber das gibt mir eigentlich einen Anlass, mich tiefer mit der Powershell zu befassen.

    Ich danke nochmal allen, die mir diese guten und brauchbaren Lösungsmöglichkeiten gegeben haben. Ich sehe damit mein Problem als gelöst an und werde das demnächst auch so markieren.

    Herzliche Grüße
    Pete


    PS: den Vorschlag Powershell in #2 habe ich nicht ausprobiert, weil er mir zu aufwändig erschien, aber ich habe gerade gesehen, dass die Ausgabe-Umleitung in der Powershell genauso funktioniert wie in der EA, also "powercfg /? > c:\powercfg.txt" geht auch.

    .
    Geändert von PeteM92 (13.06.2017 um 11:06 Uhr)
    skorpion68 bedankt sich.

  14. #14
    .Bernd
    gehört zum Inventar Avatar von .Bernd

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Dafür ist die Textdatei aus Powershell genau doppelt so groß wie die aus der Eingabeaufforderung!
    Ja, weil UTF (also Zwei-byte) statt ANSI/OEM. Mit einem hex-Ed mal reinschauen in diverse Formate hilft, vor allem bei Little und Big Endian. Wer mit Textformaten hantiert, sollte das zwingend wissen.
    Geändert von .Bernd (13.06.2017 um 17:16 Uhr)
    PeteM92 bedankt sich.

  15. #15
    PeteM92
    gehört zum Inventar

    AW: Zeichencodierung / Eingabeaufforderung (cmd) / Textausgabe

    Ja, von den großen und den kleinen Indianern hab´ich schon mal was gehört

Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen


  • An Google übertragen Google
  • -->

    Berechtigungen

    • Neue Themen erstellen: Nein
    • Themen beantworten: Nein
    • Anhänge hochladen: Nein
    • Beiträge bearbeiten: Nein
    •  

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162