Перенос «большого» файла с машины MS-DOS 5.0 (без удаления жесткого диска)

55

Как часть юридического учета, юристы моего отца по бизнесу запросили копию базы данных клиентов с рабочего компьютера. Основная проблема заключается в том, что этот рабочий компьютер - примерно AOpen 1988 года, работающий под управлением модифицированной версии DOS 5.0.

Я очень слаб в реальной MS-DOS и старом оборудовании в целом, но после некоторых недоразумений я наконец нашел файл, который нужен юристу. Проблема в том, что клиентская «база данных» (читай: текстовый файл с разделителями-пробелами) имеет размер ~ 3 МБ. Это слишком велико для одной дискеты, и данные находятся в одном файле, что, из-за моих очень ограниченных знаний о реальном DOS, помешало бы мне разбить их на встроенные программы на компьютере.

Проверяя заднюю часть компьютера, я заметил 1 встроенный последовательный порт, параллельный порт в слоте расширения и несколько необъяснимо сетевой адаптер с гнездом в нем, слишком большим, чтобы быть RJ-11. Я не проверял, действительно ли это RJ-45, потому что у меня не было удобного Ethernet-кабеля в то время. Тем не менее, два программных файла, которые я использовал бы (согласно моим исследованиям) для использования серийного номера, нигде не найдены на компьютере. Кроме того, я не имею ни малейшего представления, что бы я сделал, чтобы использовать NIC.

Помимо осложнений, простое извлечение жесткого диска должно быть отнесено к последнему средству, поскольку компьютер (который старше меня) используется для повседневных деловых операций и должен быть отключен на 1 день из-за расстояния между компьютер и я, который "клиент" не особо хочет.

Итак, суть моего вопроса в том, что с моим почти отсутствующим навыком в DOS (я случайно испортил одну из «баз данных» и был бы в плохом состоянии, если бы я не сделал резервную копию заранее), есть ли простой способ Я могу использовать вышеупомянутые ресурсы (или что-то еще, чего я не знаю о DOS), чтобы вытащить этот 3-мегабайтный файл из компьютера без извлечения жесткого диска?

Tarkenfire
источник
13
Самым простым решением было бы просто получить последнюю полную резервную копию. Не говорите мне, что этот критически важный файл не копируется и живет на машине, которая находится в доме престарелых.
Эмори
14
+1 за dosправильное использование тега!
CVn
13
Это должен быть звонок для пробуждения. Если они не могут сэкономить компьютер на короткое время, потому что он ежедневно используется, что они будут делать, когда он перестанет работать и потеряет все свои данные? Чем дольше они покидают его, тем более вероятно, что это произойдет. Воспользуйтесь возможностью, чтобы подтолкнуть их к обновлению и делать регулярные резервные копии (которые затем можно легко скопировать и отправить юристу)
JamesRyan
3
Мне просто жаль бедного парня, использующего дос-бокс 1980-х годов в качестве своей ежедневной рабочей станции
авария
2
«Компьютер (который старше меня) используется для повседневных деловых операций»: эта фраза заставила меня вздрогнуть.
Этот бразильский парень

Ответы:

53

Попробуйте использовать PKZip. Это старая утилита DOS, которая предоставляла некоторые из самых ранних возможностей zip-файлов. Вы должны быть в состоянии загрузить это в http://wiki.oldos.org/Downloads/MSDOS . Если база данных представляет собой текстовый файл, то PKZip должен позволить вам сжать достаточно, чтобы попасть на дискету, или, если нет, то он должен разрешить охват нескольких дисков. В этот момент ваша главная проблема - перейти с дискеты на более современный компьютер. Я не помню синтаксис для PKZip, но я помню, что в него встроена очень хорошая справка, чтобы показать вам, как именно архивировать и разархивировать файлы. Я рекомендую версию 2.04g из загрузок, так как она многие годы считалась лучшей версией.

Том А
источник
12
Даже если вы не можете сжать его достаточно для размещения на одной дискете, вы сможете создать составной набор томов zip-файлов.
Дакслерод
2
если его чистый текст, он должен сжиматься довольно хорошо
Keltari
24
@Tarkenfire: В DOS все не просто текст! Как будут существовать программы, не говоря уже о практически всех двоичных форматах файлов?
Каран
1
Получить данные с дискеты не должно быть слишком сложно; USB флоппи-дисководы довольно дешевые.
Аарон Миллер
5
Просто чтобы обновить, pkzip работал как шарм; он сжал файл размером ~ 3000 КБ примерно до 300 КБ, возможно, потому, что это был текстовый файл с разделением пробелами и пробелом
2700 КБ
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 МБ, которые должны удобно размещаться на дискете 1,44 МБ даже после учета накладных расходов FAT.

Редактировать: вот обновленная версия, использующая бинарный ввод / вывод, которая работает намного быстрее, не имеет проблем с символами Ctrl-Z и правильно обрабатывает входные файлы, размер которых не кратен размеру буфера. Я протестировал его в DOSBox, и он правильно разделил 3-мегабайтный файл случайных байтов на куски.

Илмари Каронен
источник
Во IIRC блоки могут быть повторно собраны с использованием бинарного флага и, например, копии copy /b foo_1.chunk + /b foo_2.chunk {...}. Я не могу вспомнить, имеет ли версия копии для Dos 5 двоичный флаг ...
Горацио
1
Кроме того, если вы open for binaryи читаете / пишете с помощью getи put, у вас нет «проблем с магическими персонажами»
Гораций
@horatio: Спасибо за совет. Это также оказывается намного быстрее (хотя я подозреваю, что разница может быть незначительной при записи на настоящие дискеты).
Ильмари Каронен,
10

Это всего 3 мегабайта, так что использование PKZIP с охватом было бы самым простым решением, как говорили другие. тем не мение

Если у вас возникла такая проблема и дисковод гибких дисков НЕ работал, использовать последовательный порт было бы довольно просто.

Чтобы использовать последовательный порт, вам нужна программа терминала DOS, и вы должны запустить ее, а затем использовать протокол, такой как ZMODEM, для передачи файла со скоростью 115 кбит / с, что займет у вас менее 5 минут при скорости 115200 кбит / с.

На вашем ноутбуке или любом другом современном ПК вам понадобится адаптер USB-последовательный порт, нуль-модемный кабель и терминальная программа, поддерживающая тот же протокол передачи файлов. Эти кабели должны стоить вам около 5 долларов каждый в большинстве приличных компьютерных магазинов.

Лучшая терминальная программа MS-DOS, которую я когда-либо использовал, называлась Telix версии 3.12.

Уоррен П
источник
1
Telix была действительно хорошей программой, и я также помню, как использовал Terminate. Интересно, ты когда-нибудь использовал это? Я иногда скучаю по своим любимым BBS и модему USR. Помните, что когда-то давно вы были одержимы созданием анимационного ASCII-арта
Каран
8

PKZIP поддерживает работу с несколькими дискетами, и Lenovo имеет совместимое с DOS приложение под названием CHOPPER, которое также выполнит это.

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]]

JohnP
источник
3

Адвокат четко указал, что база данных должна быть предоставлена ​​в электронном формате?
Если нет, и если к этой критически важной системе подключен функциональный (матричный) принтер, вы можете распечатать текстовый файл с помощью команды печати DOS .
Например:

напечатать c: \ file.txt / c / d: lpt1

Предполагая, что скорость принтера составляет 100 л / мин (~ 2,5 стр / мин) и 750 страниц текста (примерное количество в текстовом файле 3 Мбайт согласно этому калькулятору ), вы сможете создать полную копию за 5 часов.

gm2
источник
2

Возможно, вы могли бы разделить текстовый файл вручную, используя инструменты, уже присутствующие в DOS, и рекомбинировать их на целевом компьютере? Поскольку это все ASCII, сделать это будет намного проще, чем пытаться разбить двоичный файл.

Николас Хилл
источник
3
Я попробовал два редактора, которые мог найти в системе, но они оба выдавали мне ошибки «не хватило памяти», я полагаю, потому что они пытались загрузить файл 3 МБ в память одновременно.
Tarkenfire
Я бы не использовал редактор, но я думаю, что некоторые аргументы в пользу XCOPY, MORE или, возможно, даже TYPE могут позволить вам грубо разделить файл. (конечно, PKZIP намного проще и почти гарантированно работает, но это может быть забавной попыткой)
Хавьер
2

До хвалебных дней повсеместного использования USB-чипов и сетевых карт в каждом компьютере я помню, как с любовью подключал два компьютера с последовательными и параллельными кабелями для крупномасштабной передачи данных.

Мне приходилось гуглить самый удобный метод в нынешнем возрасте, но он выглядит примерно так, как я помню.

File Maven - это утилита для передачи файлов, которая позволяет вам осуществлять передачу по последовательному или параллельному кабелю. Вероятно, у вас больше ничего нет с последовательным портом вокруг, поэтому адаптер последовательного порта к USB даст вам соединение с современными технологиями.

Этот кабель может нуждаться в адаптере смены пола, я забыл, какая часть была на компьютере.

Я хочу встать и приветствовать аплодисменты того производителя, который отвечал за жесткий диск. 25-летний HDD все еще работает. Можете ли вы представить, что современные диски SATA все еще работают в 2038 году?

Арни Св. Сигурдссон
источник
1

Вы всегда можете найти 25-контактный диск Zip / Jaz на Craigslist или Ebay. Тем не менее, есть лучшие методы, чем это. :)

Keltari
источник
1

Как насчет попытки найти старую версию Laplink, когда клиент является новой версией, запущенной на ПК, на котором вы хотите эти данные. Программное обеспечение доступно здесь: http://www.briggsoft.com/fmdos.htm

Cavemanharris
источник
Современные ПК даже не имели бы последовательного порта, не говоря уже о параллельном порту, но я думаю, что с переходником USB-to-serial, Laplink была бы хорошей идеей. Гораздо более простой способ передачи содержимого всего жесткого диска или содержимого всей папки, чем идея Telix + ZMODEM, но технически ли этот подход ЮРИДИЧЕСКИ? "LapLink" - бренд, который все еще существует, и, возможно, им не нравятся люди, загружающие их вещи для DOS.
Уоррен П,