将命令的输出保存在文件 MS-DOS 1.x 中

Bla*_*ake 27 terminal virtualbox redirection ms-dos virtual-machine

这似乎[COMMAND]>[FILE]在 MS-DOS 的早期版本中不起作用。我使用的是 MS-DOS 1.25,上面的表达式给出了语句invalid argument.

更新:既然它确实在 DOS 1.x 中不起作用,那么是否可以使用虚拟框的某些功能来获取该输出,或者说通过从某些日志文件中获取输出。

Dav*_*ill 40

似乎 [COMMAND]>[FILE] 在 MS-DOS 的早期版本中不起作用。

我使用的是 MS-DOS 1.25,上面的表达式给出了语句无效的参数

那是正确的。您想要做的在 v1.25 中是不可能的。

在 v2.0 中添加了命令重定向(以及许多其他改进)。

MS-DOS 2.0 版(相当于 PC-DOS 2.0)于 1983 年 3 月首次发布。回想起来,它是一个新的操作系统(尽管非常小心地保持与 MS-DOS 版本 1 的兼容性)。它包含许多重要的创新和增强功能,包括在下一页列出的功能。

  • 支持更大容量的软盘和硬盘
  • 许多类似 UNIX/XENIX 的功能,包括分层文件结构、文件句柄、I/O 重定向、管道和过滤器
  • 后台打印(后台打印)
  • 卷标,加上额外的文件属性
  • 可安装的设备驱动程序
  • 用户可自定义的系统配置文件,用于控制附加设备驱动程序的加载、系统磁盘缓冲区的数量等
  • 维护可用于在程序之间传递信息的环境块
  • 一个可选的 ANSI 显示驱动程序,允许程序以独立于硬件的方式定位光标和控制显示特性
  • 支持应用程序动态分配、修改和释放内存
  • 支持自定义用户命令解释器(shell)
  • 帮助应用程序软件修改其货币、时间和日期格式的系统表(称为国际支持)

由 Ray Duncan 编写的高级 MS-DOS 编程


我可以做什么?

一种可能的解决方法是捕获屏幕(作为文本)并解析输出。

这个问题的答案DOS中的屏幕截图列出了一些 TSR(终止但保持驻留)程序,这些程序是您调查的起点。

  • 很好的答案。只有最真实的超级用户才会关心 MS-DOS 1.0。 (13认同)

str*_*rgo 5

您可以使用虚拟机调试工具(或 gdb/其他东西)直接读取内存。ms-dos 没有内存保护,也不是多任务系统,所以你可以读取虚拟机内存,你可以读取虚拟机 vga 进行输入。

文档说存在一个命令

info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode

获取输出的正确语法是: run VirtualBox --debug --startvm msdos1.25,然后在调试器控制台中: info vgatext

复制粘贴输出:

The COMPAQ Personal Computer DOS                                                
Version 1.11                                                                    


(C) Copyright COMPAQ Computer Corp. 1982                                        
(C) Copyright Microsoft 1981, 82                                                


A>                                                                              











--------------------------------------------------------------------------------
VBoxDbg> 
Run Code Online (Sandbox Code Playgroud)

因此,您可以编写一个调试器脚本,该脚本挂钩程序内存中的内存值并在程序输出时转储 vga 屏幕/或者您可以编写暂停 cpu 的脚本,一致地保存内容,如果输出发生变化,保存更新的内容,继续处理器运行

一些可供调查的选项是:

  • 查找如何编写调试脚本以转储应用程序的内存内容

  • 为 quemu/dosbox/virtualbox 找到一些调试 vga 驱动程序/串口/内存转储解决方案

  • 找到一些 80 年代的旧实用程序,也许有人为此目的写回了那里

  • 在此处添加 freedos 标签(或者甚至在大型 stackoverflow 上移动/重复您的问题,我想有些大师应该知道这样的问题

如果我发现一些有趣的东西,我会稍后更新,但是您能否透露一些有关您为什么使用 1.25 的详细信息,该程序是否适用于较新版本的 msdos?我敢打赌,您可以找到一些年轻的汇编黑客,他们渴望将这个程序修补到更新的版本(或使用 asm 添加文件输出),并收取少量费用