Как запустить (16-разрядный) исполняемый файл.COM, который был переименован в.COS?

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

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

3 ответа

Посмотрите, что я могу сделать:-) (только что сделал это в окне 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.

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам