如何运行已重命名为 .COS 的(16 位).COM 可执行文件?

如何运行已重命名为 .COS 的(16 位).COM 可执行文件?

我正在尝试从标准 Windows XP DOS 提示符运行几个 16 位旧版 DOS 程序。问题是文件扩展名已从 .COM 重命名为 .COS,并且它们存储在只读介质上,我无法复制它们(特殊环境)。

尽管扩展名很奇怪,但关于如何调用这些文件的任何提示?如果它们是 32 位 EXE,即使没有正确的扩展名,运行它们也不会有问题,但对于这些 COM 文件,我无法找到运行它们的方法。

答案1

看看我能做什么:-)(刚刚在 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>

即,如果您在 DOS 提示符下明确命名扩展名,您显然可以执行 cos 文件。

答案2

好的。我已经搞明白了。我想,不管怎样。这利用了这样一个事实:DOS .COM 文件只是带有 0x100 字节标头的二进制图像,前几个字节是JMP 0x0100(希望我没记错)和debugXP 中存在的旧 DOS 实用程序。

  • 打开命令提示符
  • cd到包含 .COS 文件的目录
  • debug enter
  • 您现在位于debug.exe提示符下(只有一个破折号)
  • 类型n{name of your .COS file, including extension}- 适当替换。例如,对于 FILE.COS 类型nfile.cos,则enter
  • 然后输入l(用于加载)enter
  • 然后输入g(for go)enter

请告诉我进展如何。我已加载C:\windows\system32\tree.com,但显然它确实是一个.EXE(说这不能在 DOS 模式下运行)。祝你好运。

(顺便说一下只是阅读上面关于 tree.com 的内容,哎呀!)

答案3

不,恐怕在您描述的情况下无法实现您的愿望。可执行文件是经过特殊处理的(因为它们具有感染系统的能力),因此 Windows 不会让您将任何旧文件作为可执行文件运行。

环境变量PATHEXT告诉 Windows 哪些程序是“可执行”的并且可以“运行”,但也有限制。打开命令提示符并附加到.cos以下文件pathext之一并尝试运行.cos

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

您将看到默认的“所有文件”程序运行,或者如果没有配置,则打开用对话框出现。为什么?因为 Windows 出于安全原因限制了可以运行的内容。您应该能够将.cos文件注册为可执行文件(如.py.pl等),但即使这样,也可能无法实现,因为.py.pl文件实际上只是一个文档由程序打开,而不是实际打开可执行文件

另一个选择可能是尝试创建关联,通过此关联告诉系统.cos文件是comfiles。但是,我刚刚尝试的快速测试没有成功,Windows 抱怨它不是可执行文件并返回拒绝访问

相关内容