Как запустить (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
в каталог, содержащий файлы.COSdebug
[войти]- Вы сейчас на
debug.exe
подсказка (только тире) - Тип
n{name of your .COS file, including extension}
- заменить соответствующим образом. Например, для типа FILE.COSnfile.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 пожаловалась, что это не исполняемый файл, и вернула отказ в доступе.