Seltsame Zeichen (´╗┐) am Anfang einer Batch-Datei [duplizieren]


30

Ich arbeite mit Batch-Dateien in Windows, mit Notepad und Notepad ++. Wenn ich die Batch-Dateien ausführe, mit denen alle beginnen @echo off, wird in der ersten Zeile (bei Ausführung auf zwei separaten Computern) das Lesen angezeigt ´╗┐@echo off, und dann werden auch alle REM-Zeilen darunter angezeigt.

Ich habe versucht, die Codierung in Notepad ++ zu ändern, aber es wird behauptet, dass es sich bereits um UTF-8-Codierung handelt, was korrekt zu sein scheint.

Was muss ich tun, damit diese Dateien ordnungsgemäß ausgeführt werden?


@luu meine Frage ist über Notizblock ++ speziell
Kanadier Luke REINSTATE MONICA

Beachten Sie, dass der normale Editor beim Speichern mit UTF8 das Speichern ohne Stückliste nicht zulässt und diese Zeichen hinzufügt.
dmcontador

Antworten:


26

Es sieht aus wie die DOS-ASCII-Codierung der Byte Order Mark für UTF-8 (0xEF 0xBB 0xBF): http://en.wikipedia.org/wiki/Byte_order_mark

Versuchen Sie in Notepad ++, es als "UTF-8 Without BOM" oder als einfaches ASCII-Format zu codieren. Ich denke, die Verwendung von BOM für UTF-8 wird aus diesem Grund abgeraten, es ist nicht genau abwärtskompatibel mit ASCII.


2
Absolut richtig, mit Ausnahme von 'DOS ASCII' ist DOS-Codepage 850, wie durch Experimentieren in Python gezeigt:>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
DeltaB,

@ Deltab Ah, gute Entdeckung. Ich war mir nicht sicher, wie die Codierung speziell genannt wurde, nur dass ich die Strichzeichnungen ╗┐seit den Tagen von MS-DOS 5 / Windows 3.11 nicht mehr gesehen hatte. Modernes Windows muss Batch-Dateien mit dieser Kodierung ausführen, um Kompatibilität zu gewährleisten.
Baochan

1
Ich bin darauf gestoßen, als ich mit Visual Studio eine neue Textdatei erstellt habe.
Sam Goldberg

9

Es hat sich herausgestellt, dass die ANSI- Codierung eingestellt sein muss, um ordnungsgemäß zu funktionieren. Um dies einzustellen, habe ich Encoding -> Encode in ANSI gewählt .

Um dies herauszufinden, habe ich versucht, eine Batch-Datei über die Befehlszeile zu erstellen.

echo @echo off > batch.bat
echo REM Some comment... >> batch.bat
echo echo Hello world! >> batch.bat

Ich öffnete diese Datei dann in Notepad ++ und überprüfte die Codierung in der unteren rechten Ecke, die ANSI als UTF-8 lautete . Ich weiß nicht, warum es das letzte bisschen hinzufügt, aber es scheint jetzt zu funktionieren.


ANSI ist eigentlich keine Kodierung. Vermutlich bezieht es sich auf die Standard- Codepage Ihres Windows-Systems . Dies ist je nach Konfiguration von System zu System unterschiedlich.
Cody Grey

Das ist nicht richtig. Die Stückliste ist ein Zeichensatzkodierungsartefakt.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen Wer ist falsch, ich oder Cody?
Kanadier Luke REINSTATE MONICA
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.