从 MS-DOS 5.0 机器传输“大”文件(不移除硬盘)

Tar*_*ire 55 file-transfer ms-dos

作为某种法律记录保存工作的一部分,我父亲的商业律师要求从工作计算机上获取客户数据库的副本。核心问题是这台工作计算机是大约 1988 年的 AOpen...东西,运行看起来是 DOS 5.0 的修改版本。

我对实际的 MS-DOS 和一般较旧的硬件非常薄弱,但经过一番摸索后,我终于找到了律师需要的文件。问题在于客户“数据库”(读取:空格分隔的文本文件)大约为 3MB。这对于一张软盘来说太大了,而且数据都在一个文件中,就我对实际 DOS 的非常有限的了解,这将使我无法将它与计算机上的内置程序分开。

检查电脑背面,我注意到1个内置串口,一个扩展槽中的并口,还有一个有点莫名其妙的网卡,里面的插孔太大了,不能是RJ-11。我没有测试它是否真的是 RJ-45,因为当时我手边没有以太网电缆。但是,我本会使用(根据我的研究)来使用串行的两个程序文件在计算机上找不到。此外,我完全不知道我会做什么来利用 NIC。

此外,更复杂的问题是,仅拔出 HDD 必须降级为最后的手段,因为计算机(比我年龄大)用于日常业务操作,并且由于两者之间的距离必须离线约 1 天计算机和我,“客户”并不特别想要。

所以我的问题的关键是,我在 DOS 中几乎没有任何技能(我不小心损坏了一个“数据库”,如果我没有事先备份,情况会很糟糕),有没有一种简单的方法我可以利用上述资产(或其他我不知道的关于 DOS 的东西)在不拔硬盘的情况下从计算机上获取这个 3 meg 文件?

Tom*_*m A 53

尝试使用 PKZip。这是一个旧的 DOS 实用程序,提供了一些最早的 zip 文件功能。您应该可以在http://wiki.oldos.org/Downloads/MSDOS下载它。如果数据库是一个文本文件,那么 PKZip 应该可以让您压缩到足以进入软盘的程度,否则,它应该允许跨越多个磁盘。那时,您的主要问题是从软盘转移到更现代的计算机上。我不记得 PKZip 的语法,但我记得它确实有很好的内置帮助,可以准确地向您展示如何压缩和解压缩文件。我从下载中推荐 2.04g 版本,因为它多年来被普遍认为是最好的版本。

  • @Tarkenfire:DOS 上的所有内容都不是纯文本!程序将如何存在,更不用说几乎所有的二进制文件格式? (24认同)
  • 即使您不能将其压缩到足以放在一张软盘上,您也应该能够创建一个跨区卷集的 zip 文件。 (12认同)
  • 只是为了更新,pkzip 就像一个魅力;它将一个 ~3000kb 的文件压缩到大约 300kb,可能是因为它是一个用空格分隔的文本文件,其中包含 2700kb 的空格...... (5认同)
  • 如果是纯文本,它应该压缩得相当好 (2认同)

Ilm*_*nen 17

电脑是否安装了QBasic?如果是这样,您可以在其中编写一个简单的文件拆分器,如下所示:

OPEN "database.dat" FOR BINARY AS #1

LET disk% = 1
LET todo& = LOF(1)

DO UNTIL todo& <= 0
    PRINT "Insert disk"; disk%; "into drive A: and press enter.";
    LINE INPUT ""; foo$

    LET file$ = "A:\chunk" + LTRIM$(RTRIM$(STR$(disk%))) + ".dat"
    OPEN file$ FOR BINARY AS #2

    LET done& = 0
    DO UNTIL done& >= 1300000 OR todo& <= 0
        LET buf$ = SPACE$(4096)
        IF todo& < LEN(buf$) THEN LET buf$ = SPACE$(todo&)
        GET #1, , buf$
        PUT #2, , buf$
        LET done& = done& + LEN(buf$)
        LET todo& = todo& - LEN(buf$)
    LOOP

    CLOSE #2
    LET disk% = disk% + 1
    BEEP
LOOP
CLOSE #1
Run Code Online (Sandbox Code Playgroud)

这会将您的数据库分成 1.3 MB 的块,即使考虑到 FAT 开销,它也应该可以轻松地放在 1.44 MB 的软盘上。

编辑:这是一个使用二进制 I/O 的更新版本,它运行得更快,没有 Ctrl-Z 字符问题,并且可以正确处理大小不是缓冲区大小倍数的输入文件。我已经在 DOSBox 下对其进行了测试,它正确地将 3 MB 的随机字节文件拆分为多个块。


War*_* P 10

正如其他人所说,它只有 3 兆,因此使用具有跨度的 PKZIP 将是最简单的解决方案。然而

如果您遇到这样的问题并且软盘驱动器不工作,使用串行端口会很容易。

要使用串行端口,您需要一个 DOS 终端程序,然后运行它,然后使用 ZMODEM 之类的协议,以 115kbps 传输文件,以 115200 kbps 传输文件需要不到 5 分钟。

在您的笔记本电脑或任何其他现代 PC 上,您需要一个 USB 转串口适配器、一条空调制解调器电缆以及一个支持相同文件传输协议的终端程序。在大多数体面的电脑商店,这些电缆每根应该让您花费大约 5 美元。

我用过的最好的 MS-DOS 终端程序叫做 Telix 3.12 版。


小智 8

PKZIP 确实支持跨多个软盘,联想有一个名为 CHOPPER 的 DOS 兼容应用程序也可以实现这一点。

http://support.lenovo.com/en_US/research/hints-or-tips/detail.page?LegacyDocID=DSHY-44QSCB

用于磁盘跨越的 pkzip 开关(来自文档):

-&[f|l|u Span disks [Format|format Low density|Unconditional format| ul|w|v] Unconditional Low density|Wipe disk|enable dos Verify| [s[drive]] Back up entire disk w/ subdirs (-rp) [drive to back up]]