MSDOS печатает весь пакетный файл на экране вместо выполнения

Всякий раз, когда я пытаюсь выполнить пакетный файл, даже простой, он печатает всю вещь, а не выполняет ее. Я пробовал это на MS-DOS 3.3 и 4.0, оба делают это. Если я выполняю каждую команду отдельно в командной строке, хотя они работают (поэтому, если я введу "паузу" в командной строке, она будет приостановлена, то же самое с другими командами). Пакетный файл отлично работает в Windows 2000 (единственный компьютер, на котором я мог читать 720k дискет) Мой код ниже, называется test.bat:

@echo off
cls
echo Hello World!
pause

Похоже, что когда он выполняется, текст, в котором указан тест, является именем программы, которую я выполнил: экранная фотография

Ответ 1

Как уже упоминалось в комментариях, ваш файл test.bat не содержит невидимые символы возврата каретки - только символы перевода строки. Это отлично подходит для Unix/Linux, но для DOS нужны оба. Весь файл обрабатывается как одна строка.

Так как это простой файл, вы можете просто перепечатать его командой copy con test.bat и набрать CTRL+Z по завершении. К сожалению, это позволит создавать новые файлы, а не редактировать существующие.

Как вы обнаружили, MS-DOS 4 предшествует команде edit. Но он пришел с другим (более раздражающим) текстовым редактором: edlin.

Вы можете редактировать только одну строку за раз, а элементы управления на клавиатуре не совсем интуитивно понятны, поэтому ознакомьтесь с этой ссылкой для получения информации о навигации по интерфейсу: http://www.computerhope.com/edlin.htm

Ответ 2

Чтобы сделать ответ легко доступным для всех пользователей:

Подготовка и запуск командного файла DOS в MS DOS:

  • копировать DOS-приложения edit.com и qbasic.exe на ваш диск MS-DOS
  • введите командный файл в edit.com, не используйте текстовые процессоры
  • запустите его в MS-DOS. Он должен работать нормально.