DOS-Programm unter WinXP Pro

2

Ich besitze ein altes DOS-Programm (EarlyBird - EB.EXE), das auf meinem WIN XP Pro-System seit vielen Jahren einwandfrei funktioniert. Das Programm wird über eine Verknüpfung zur EXE-Datei (eine * .pif-Datei, glaube ich) gestartet, von NTVDM ausgeführt und verwendet anscheinend AUTOEXEC.NT und CONFIG.NT.

Seit ich aus den USA nach Großbritannien gezogen bin, habe ich vor kurzem die regionale Option von USA nach Großbritannien geändert. Das 'DOS'-Fenster zeigt die "Box Drawing" -Zeichen jetzt nicht richtig an.

Wenn ich eine CMD-Eingabeaufforderung starte und chcp eingebe, wird die Codepage als 850 angezeigt. Dies scheint in Ordnung zu sein, obwohl es bisher 437 war. Das DOS-Programm von Early Bird verfügt jedoch über einen DOS-Shell-Exit die Antwort 1252.

Ich habe mit der Hilfe von @Doktoro Reichard verschiedene Experimente durchgeführt, darunter das Festlegen der Codepage in der Registrierung, das Starten einer .bat-Datei mit einer Kraft über chcp auf verschiedene Codepages. Keines davon schien zu funktionieren.

Schließlich habe ich das Gebietsschema wieder auf US zurückgesetzt und die Box-Zeichen funktionieren nun einwandfrei. Seltsamerweise zeigt ein DOS-Exit aus dem EB-Programm STILL den Wert cp als 1252 an, während eine CMD-Eingabeaufforderung 437 anzeigt. Dies ist verwirrend.

Ich möchte jedoch wirklich, dass das Windows-Gebietsschema Großbritannien ist (aus einer Vielzahl von Gründen wie Datumsformaten, 24-Stunden-Uhr usw.), aber ich benötige immer noch mein altes DOS-Programm, um korrekt zu funktionieren.

Gibt es eine Möglichkeit, das Gebietsschema auf UK festzulegen und dennoch die richtigen Zeichnungszeichen unter NTVDM über die * .pif-Verknüpfung abzurufen?

Vielen Dank

David

David
quelle

Antworten:

2

Sie haben Ihre Frage ungewollt beantwortet:

... aber ich habe kürzlich die regionale Option von US nach UK geändert.

Aus diesem Grund werden in der Eingabeaufforderung nicht die richtigen Zeichen angezeigt. Laut der Dokumentation über chcp :

CHCP.com

Ändern Sie die Codepage der aktiven Konsole. Die Standard-Codepage ist   bestimmt durch das Windows-Gebietsschema.

Syntax:

CHCP code_page

     code_page  - A code page number (e.g. 437)

Durch den Wechsel von der US-amerikanischen zur britischen Codepage haben Sie auch die Darstellung der Zeichen geändert. Wenn Sie sich die folgenden Bilder ansehen, können Sie sehen, warum die Box-Zeichen nicht gerendert werden: weil sie nicht vorhanden sind:

Zum Glück ist die Lösung einfach: laufen chcp 850 (was, obwohl es nicht die ursprüngliche US-Version ist, größtenteils mit Code Page 437 kompatibel ist) oder chcp 437 am Anfang der aktuellen Eingabeaufforderung.

Code Page 437 (IBM-ASCII)

Codepage 437 (IBM-ASCII)

.

Code Page 1252 (Western Europe)

Code Page 1252 (Westeuropa)

Doktoro Reichard
quelle
Danke, wenn es nur so einfach wäre - jede gestartete CMD-Eingabeaufforderung zeigt jetzt Code Page als 850 an. JEDOCH, wie ich oben sagte, zeigt ein Exit der DOS-Shell Page als 1252 an. Ich glaube, Sie sagen mir, ich solle das * .pif bearbeiten Datei, die einen CHCP-Befehl enthält, um ihn auf 850 zu zwingen, ABER warum wird 1252 verwendet - das ist nicht in dem Gebietsschema festgelegt, das korrekt auf UK festgelegt ist
David
Ich entschuldige mich, wenn ich unklar war. Der einfachste Weg, dies zu "beheben", ist, wie ich bereits sagte, das Ausführen chcp vor jedem Befehl. Wenn Sie Ihr Programm direkt ausführen, erstellen Sie eine .bat mit chcp und dann wird Ihr Programm funktionieren. Der Grund für die Verwendung von CP 1252 ist, wie ich bereits sagte, dass Sie das Gebietsschema als UK eingerichtet haben, das den CP 1252 verwendet. Wenn Sie das Gebietsschema beibehalten möchten und eine beliebige Codepage haben möchten, hat dies anscheinend jemand anderes beantwortet Hier
Doktoro Reichard
Nochmals vielen Dank - mir fehlt vielleicht etwas, aber ich brauche ein bisschen mehr Hilfe. Wenn ich die Eingabeaufforderung unter Windows verwende, erhalte ich das DOS-Fenster und wenn ich in dieses Fenster chcp eingebe, erhalte ich 850, was ich will. Die * .pif-Erstellung (Verknüpfung zur .exe) verwendet jedoch AUTOEXEC.NT und CONFIG.NT, was dazu führt, dass die Codepage auf 1252 gesetzt wird. Ich habe die Bearbeitung in der Registrierung versucht und AUTORUN = chcp 850 hinzugefügt, aber das hat hatte keine Wirkung. Gibt es eine andere Möglichkeit, die 850-Codepage zu erzwingen, als eine neue .bat-Datei anstelle der * .pif-Datei zu erstellen?
David
Hallo, ich habe erneut versucht, die .bat-Datei zu erstellen, die zwei Zeilen enthält: chcp 850 und eb.exe. Das Ergebnis ist, dass auf dem Bildschirm immer noch keine Zeichen für die Boxzeichnung angezeigt werden, aber in der DOS-Shell wird jetzt cp mit 850 angezeigt. Dies funktionierte auch, nachdem ich das Gebietsschema geändert habe. Gibt es andere Windows-Parameter, die ich ändern kann, um den richtigen Effekt zu erzielen?
David
Ändern Sie es in CP 437 und es sollte funktionieren. Höchstwahrscheinlich verwendet dieses Programm Zeichen wie diese (╡ ╡), die im 850 nicht zugeordnet sind (dies ist die westliche lateinische Schrift und enthält stattdessen Zeichen wie Á). Außerdem ist der CP 437 die US-Seite und sollte auch als solche funktionieren.
Doktoro Reichard