4

Я пытаюсь запустить пару 16-битных устаревших DOS-программ из стандартной командной строки Windows XP. Проблема в том, что расширения файлов были переименованы из.COM к.COS, и они хранятся на носителе только для чтения, и я не могу их скопировать (специальная среда).

Любые советы о том, как вызывать такие файлы, несмотря на странное расширение? Если бы это были 32-битные EXE-файлы, это не было бы проблемой при запуске их даже без их соответствующих расширений, но с этими COM-файлами я не могу найти способ их запуска.

3 ответа3

4

Хорошо. Я понял это. Я думаю, в любом случае. Это использует тот факт, что DOS.COM-файлы - это просто двоичные образы с байтовым заголовком 0x100 , причем первые пару байтов представляют собой JMP 0x0100 (надеюсь, я прав), и debug старой утилиты DOS, существующая в XP.

  • открыть командную строку
  • cd в каталог, содержащий.COS файлы
  • debug [ввод]
  • Вы теперь в приглашении debug.exe (только черта)
  • Введите n{name of your .COS file, including extension} - подставляем соответственно. Например, для FILE.COS введите nfile.cos , затем [enter]
  • Введите l (для загрузки), затем [введите]
  • Введите g (для перехода), затем [введите]

Дайте мне знать, как это происходит. Я загрузил C:\windows\system32\tree.com но, очевидно, это действительно так .EXE (говорит, что это не может быть запущено в режиме DOS). Удачи.

(Кстати, я только что прочитал материал о tree.com, к сожалению!)

4

Посмотрите, что я могу сделать :-) (только что сделал это в окне XP DOS):

C:\>md test

C:\>cd test

C:\test>xcopy c:\windows\system32\tree.com
C:\windows\system32\tree.com
1 File(s) copied

C:\test>md t1

C:\test>md t2

C:\test>tree
Volume in drive C is OSDisk
Volume Serial Number is 0006EFC4 9654:5A1E
C:.
├───t1
└───t2

C:\test>ren tree.com tree.cos

C:\test>tree.cos
Volume in drive C is OSDisk
Volume Serial Number is 0006EFC4 9654:5A1E
C:.
├───t1
└───t2

C:\test>ren tree.cos newname.cos

C:\test>newname.cos
Volume in drive C is OSDisk
Volume Serial Number is 0006EFC4 9654:5A1E
C:.
├───t1
└───t2

C:\test>

Т.е. вы, очевидно, можете выполнить cos-файлы, если явно дадите имя расширению в командной строке DOS.

1

Нет, я боюсь, что невозможно сделать то, что вы хотите, в обстоятельствах, которые вы изложили. Исполняемые файлы обрабатываются особым образом (из-за их способности заражать систему), поэтому Windows не позволит вам просто запустить любой старый файл как исполняемый файл.

Переменная среды PATHEXT сообщает Windows, какие программы являются "исполняемыми" и могут быть "запущены", но существуют ограничения. Откройте командную строку и добавьте .cos к pathext и попробуйте запустить один из файлов .cos :

> set pathext=.cos;%pathext%
> foobar.cos

Вы увидите, что либо запускается программа по умолчанию "все файлы", либо, если она не настроена, открывается диалоговое окно « Открыть с помощью ». Зачем? Потому что Windows ограничивает то, что может быть запущено по соображениям безопасности. Вы должны иметь возможность зарегистрировать файлы .cos как исполняемые (например, .py , .pl и т.д.), Но даже в этом случае это может оказаться невозможным, поскольку файл .py или .pl самом деле является просто документом, который открывается программа, а не фактический исполняемый файл.

Другим вариантом может быть , чтобы попытаться создать ассоциацию , в котором вы сообщаете системе , что .cos файлы comfiles Тем не менее, быстрый тест, который я только что попробовал, не сработал, и Windows пожаловалась, что это не исполняемый файл, и вернула отказ в доступе.

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