Ich versuche, einige Dateien mit Unicode-Zeichen in ihnen mit Batch-Skript (es ist eine Voraussetzung) zu löschen. So laufe ich cmd und ausführen:Batch-Skript wird nicht ausgeführt, wenn Chcp
> chcp 65001
effektiv Einstellung Codepage UTF-8. Und es funktioniert:
D:\temp\1>dir
Volume in drive D has no label.
Volume Serial Number is 8C33-61BF
Directory of D:\temp\1
02.02.2010 09:31 <DIR> .
02.02.2010 09:31 <DIR> ..
02.02.2010 09:32 508 1.txt
02.02.2010 09:28 12 delete.bat
02.02.2010 09:20 95 delete.cmd
02.02.2010 09:13 <DIR> Rún
02.02.2010 09:13 <DIR> Гуцул Каліпсо
3 File(s) 615 bytes
4 Dir(s) 11 576 438 784 bytes free
D:\temp\1>rmdir Rún
D:\temp\1>dir
Volume in drive D has no label.
Volume Serial Number is 8C33-61BF
Directory of D:\temp\1
02.02.2010 09:56 <DIR> .
02.02.2010 09:56 <DIR> ..
02.02.2010 09:32 508 1.txt
02.02.2010 09:28 12 delete.bat
02.02.2010 09:20 95 delete.cmd
02.02.2010 09:13 <DIR> Гуцул Каліпсо
3 File(s) 615 bytes
3 Dir(s) 11 576 438 784 bytes free
Dann habe ich die gleichen rmdir
Befehle in Batch-Skript und speichern Sie es in UTF-8-Codierung. Aber wenn ich renne, passiert nichts, buchstäblich nichts: nicht einmal Echo funktioniert in diesem Fall vom Batch-Skript. Selbst das Speichern eines Skripts in der OEM-Codierung hilft nicht.
So scheint es, dass wenn Skripte zu UTF-8 in der Konsole ändern, Skripte aufhören zu arbeiten. Kann jemand das beheben?
Nachdenken und bald eine richtige Antwort schreiben, aber zwei Fragen: Haben Sie sichergestellt, dass Ihre Batchdatei am Anfang nicht U + FEFF hat? Und können Sie VBScript vielleicht anstelle einer Batch-Datei verwenden? Unicode-Unterstützung ist dort viel einfacher. – Joey
Nein, in der Batch-Datei ist keine Stückliste vorhanden. Ich kann VBS benutzen, aber ich wollte nur wissen, ob mein Problem direkt gelöst werden kann. – Andy
Vielleicht kann es; Ich habe vor einiger Zeit einige Fortschritte mit Unicode in Batch-Dateien gemacht, aber es ist keineswegs schön und es war bestenfalls lückenhaft. – Joey