转移“大”文件的MS-DOS 5.0计算机(不删除硬盘)


55

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

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

检查计算机背面时,我注意到有一个内置串行端口,一个扩展插槽中的并行端口,以及有点莫名其妙的网卡,其中的插孔太大,无法容纳RJ-11。我没有测试它是否实际上是RJ-45,因为当时我没有可用的以太网电缆。但是,在计算机上找不到我本来会使用(根据我的研究)使用串行程序的两个程序文件。此外,我丝毫不知道如何利用NIC。

此外,使问题更加复杂的是,仅将HDD拔出是最后的选择,因为计算机(比我还旧)用于日常业务运营,并且由于两者之间的距离而必须离线运行1天左右。计算机和我,“客户端”并不特别想要。

因此,我的问题的症结在于,由于我在DOS中几乎不具备任何技能(我不小心损坏了一个“数据库”,并且如果我事先没有做备份的话,状态会很糟),是否有一种简单的方法我可以利用上述资产(或其他我不了解DOS的东西)来从计算机上获得这3兆的文件,而无需拉硬盘。


13
最简单的解决方案是仅获取最新的完整备份。不要告诉我任务关键文件没有被备份,而是生活在养老院的机器上。
2013年

14
+1以dos正确使用标签!
CVn

13
这应该是一个唤醒电话。如果由于日常使用而使他们不能在短时间内节省计算机的使用时间,当计算机倾斜并丢失所有数据时,该怎么办?他们离开的时间越长,发生的可能性就越大。借此机会推动他们升级并进行定期备份(然后可以轻松地将其复制并发送给律师)
JamesRyan

3
对于那个使用1980年代的dosbox作为他的日常工作站的可怜的人,我感到很难过
crasic 2013年

2
“计算机(比我还旧)用于日常业务运营”:这句话使我不寒而栗。
巴西那家伙

Answers:


53

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


12
即使您无法将其压缩到足以容纳一张软盘的程度,您也应该能够创建一个跨度的zip文件卷集。
daxlerod

2
如果它是纯文本,则应压缩得很好
Keltari 2013年

24
@Tarkenfire:DOS上的所有内容都不是纯文本!程序将如何存在,更不用说几乎每种二进制文件格式了?
卡兰

1
从软盘上获取数据应该不会太难。USB软盘驱动器非常便宜。
亚伦·米勒

5
只是为了更新,pkzip就像一个魅力。它压缩了一个〜3000kb的文件,将其压缩到300kb左右,可能是因为它是一个空格描述的文本文件,带有2700kb的空白...
Tarkenfire 2013年

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

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

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


IIRC,可以使用二进制标志和dos复制(例如)重新组装块copy /b foo_1.chunk + /b foo_2.chunk {...}。我不记得Dos 5版本的副本是否具有二进制标记……
horatio

1
同样,如果你open for binary和读/写使用getput,你有没有“魔法人品问题”
霍雷肖

@horatio:感谢您的提示。事实证明,它的速度要快得多(尽管我怀疑在写入实际软盘时,差异可能微不足道)。
Ilmari Karonen

10

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

如果您遇到这样的问题,并且软盘驱动器无法工作,则使用串行端口将非常容易。

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

在笔记本电脑或任何其他现代PC上,您将需要USB到串行适配器,零调制解调器电缆和支持相同文件传输协议的终端程序。在大多数体面的计算机商店,这些电缆应使您每条回到约5美元。

我曾经使用过的最好的MS-DOS终端程序称为Telix版本3.12。


1
Telix是一个非常不错的程序,我还记得使用Terminate。想知道您是否曾经使用过?我有时会想念我最喜欢的BBS和USR调制解调器。记住曾经迷恋创造动画ASCII艺术!
卡兰2013年


3

律师是否明确指定以电子格式提供数据库?
如果没有,并且如果此关键任务系统连接了功能(点矩阵)打印机,则可以使用DOS打印命令打印文本文件。
例如:

打印c:\ file.txt / c / d:lpt1

假设打印机速度为100 lpm(〜2.5 ppm)和750页文本(根据此计算器,在3Mb文本文件中估计的数量),那么您应该能够在大约5小时内生成完整的副本。


2

也许您可以使用DOS中已经存在的工具手动分割文本文件,然后在目标计算机中重新组合它们?因为都是ASCII,所以比尝试分割二进制文件要容易得多。


3
我尝试了在系统上可以找到的两个编辑器,但是它们都向我抛出了“内存不足”错误,我想是因为他们试图同时将3MB文件全部加载到内存中。
Tarkenfire,

我不会使用编辑器,但是我认为XCOPY,MORE甚至TYPE的某些参数可以让您粗暴地分割文件。(当然,PKZIP更加容易,而且几乎可以保证可以正常工作,但这可能是一个有趣的尝试)
Javier 2013年


2

在每台计算机上普遍存在无处不在的USB芯片和NIC的喧嚣日子之前,我记得曾经亲切地将两台具有串行和并行电缆的计算机连接起来以进行大规模数据传输。

我必须用Google搜索当前时代最便捷的方法,但是它看起来与我记得的相似。

File Maven是一个文件传输实用程序,使您可以通过串行或并行电缆进行传输。您可能再也没有其他带有串行端口的东西了,因此串行转USB适配器将为您提供与现代技术的连接。

这根电缆可能需要一个性别转换适配器,我忘记了PC的哪个部分。

我要站起来,对负责硬盘的制造商表示热烈的掌声。25岁的硬盘仍在运行。您能想象今天的SATA驱动器在2038年仍在运行吗?


1

您总是可以在craigslist或ebay上找到25针Zip / Jaz驱动器。但是,有比这更好的方法。:)


1

如何查找旧版本的Laplink,而客户端是要在其上运行该数据的PC上运行的新版本。此处提供的软件:http : //www.briggsoft.com/fmdos.htm


现代PC甚至没有串行端口,更不用说并行端口了,但是我想使用USB转串行适配器,laplink是个好主意。与Telix + ZMODEM相比,传输整个硬盘内容或整个文件夹内容的方法要容易得多,但是从技术上讲,这种方法合法吗?“ LapLink”品牌仍然存在,也许他们不喜欢人们下载DOS的东西。
沃伦·P
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.