1

У меня есть следующий файл .bat, который работал без ошибок, но по какой-то причине он начал возвращать ошибку каждый раз, когда я запускаю его.

Вот файл .bat:

C:
start "" "C:\Program Files (x86)\NetBeans 7.0.1\bin\netbeans.exe"
D:
start "" "D:\standalone\My AutoHotkey Script.ahk"

Ошибка:

2 ответа2

4

Вы написали свой командный скрипт в UTF-8. Эти три символа являются кодировкой UTF-8 метки порядка байтов Unicode, U+FEFF , отображаемой на кодовой странице 437. Сценарии для командного процессора Microsoft всегда обрабатываются командным процессором, как если бы они кодировали текущую кодовую страницу "OEM" (в данном случае ясно 437), и должны быть записаны как таковые.

Причина того, что в Блокноте все выглядело нормально, заключается в том, что Блокнот распознает спецификации и соответствующим образом декодирует файл. Блокнот показывал вам не то, что командный процессор на самом деле видит в файле.

Обратите внимание, что Блокнот не имеет возможности чтения / записи файлов в кодовых страницах OEM. Если вы используете символы в командных сценариях, которые не входят в подмножество ASCII, общее для кодовых страниц "OEM" и "Windows" (к счастью, здесь это не так), то вы не сможете использовать Блокнот для редактирования этих сценариев (если вы не способны перевести от "OEM" до "Windows" кодовых страниц в вашей голове при вводе).

Даже в этом случае у вас возникнут проблемы, когда Блокнот автоматически добавит метки порядка байтов к вашим файлам, когда вы случайно сохраните его как UTF-8 вместо текущей кодовой страницы Windows (которую Блокнот неправильно называет "ANSI"). Это почти наверняка то, что произошло здесь, на самом деле.

1

Кажется, в начале вашего BAT-файла есть какой-то символ, который не может быть распознан cmd (см. Первую строку вашего скриншота).

Откройте файл BAT с помощью Блокнота, удалите все странные символы и сохраните его; затем запустите его снова. Может проблема решена?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .