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. Он должен работать нормально.