Transferindo arquivo “grande” da máquina MS-DOS 5.0 (sem remover o HDD)


55

Como parte de algum tipo de coisa legal para manter registros, os advogados de negócios de meu pai solicitaram uma cópia do banco de dados de clientes em um computador de trabalho. O principal problema é que este computador de trabalho é uma coisa de 1988 ao abrir ..., executando o que parece ser uma versão modificada do DOS 5.0.

Sou muito fraco com o MS-DOS real e com o hardware mais antigo em geral, mas depois de alguma confusão, finalmente encontrei o arquivo que o advogado precisava. A questão é que o "banco de dados" do cliente (leia-se: arquivo de texto delimitado por espaço) tem aproximadamente 3 MB. Isso é grande demais para um disquete e os dados estão em um único arquivo, que, para meu conhecimento muito limitado do DOS real, me impediria de dividi-lo com os programas internos do computador.

Verificando a parte traseira do computador, notei 1 porta serial embutida, uma porta paralela em um slot de expansão e, inexplicavelmente, uma NIC com uma tomada grande demais para ser RJ-11. Eu não testei se era realmente um RJ-45, pois não tinha um cabo Ethernet à mão no momento. No entanto, os dois arquivos de programa que eu teria usado (de acordo com minha pesquisa) para usar a série não podem ser encontrados no computador. Além disso, não tenho a menor idéia do que faria para alavancar a NIC.

Para complicar ainda mais os problemas, basta puxar o disco rígido para um último recurso, pois o computador (que é mais antigo do que eu) é usado para operações comerciais diárias e teria que ficar offline por cerca de um dia devido à distância entre o computador e eu, que o "cliente" não deseja particularmente.

Portanto, o cerne da minha pergunta é, com minha quase nenhuma habilidade existente no DOS (eu acidentalmente corrompi um dos "bancos de dados" e estaria em mau estado se não fizesse um backup antes), existe uma maneira simples Posso aproveitar os recursos mencionados acima (ou qualquer outra coisa que eu não conheça sobre o DOS) para tirar esse arquivo de 3 meg do computador sem puxar o disco rígido?


13
A solução mais fácil seria apenas pegar o backup completo mais recente. Não me diga que esse arquivo de missão crítica não está sendo copiado e vive em uma máquina que pertence a uma casa de repouso.
Emory 19/07/2013

14
+1 por usar uma dostag corretamente!
um CVn 19/07/2013

13
Esta deve ser uma chamada de ativação. Se eles não puderem poupar o computador por um curto período de tempo, porque ele é usado diariamente, o que eles farão quando o computador tombar e perder todos os dados? Quanto mais tempo eles deixam, mais provável é que isso ocorra. Aproveite a oportunidade para empurrá-los para atualizar e fazer backups regulares (que pode então ser facilmente copiados e enviados para o advogado)
JamesRyan

3
Eu me sinto ruim para o pobre rapaz usando dosbox a 1980 como a sua estação de trabalho diária
crasic

2
"O computador (que é mais antigo do que eu) é usado para operações comerciais diárias": essa frase me fez tremer.
Aquele cara brasileiro

Respostas:


53

Tente usar o PKZip. É um antigo utilitário do DOS que fornece alguns dos recursos mais antigos de arquivos zip. Você deve poder baixá-lo em http://wiki.oldos.org/Downloads/MSDOS . Se o banco de dados for um arquivo de texto, o PKZip deve compactar o suficiente para entrar em um disquete ou, caso contrário, deve permitir a expansão de vários discos. Nesse ponto, seu principal problema é passar do disquete para um computador mais moderno. Não me lembro da sintaxe do PKZip, mas lembro que ele tem uma ajuda muito boa incorporada para mostrar exatamente como compactar e descompactar arquivos. Eu recomendo a versão 2.04g dos downloads, pois foi universalmente considerada a melhor versão por muitos anos.


12
Mesmo que não seja possível compactá-lo o suficiente para caber em um único disquete, você poderá criar um conjunto de volumes estendidos de arquivos zip.
Daklerod

2
Se seu texto puro, ele deve comprimir muito bem
Keltari

24
@ Tarkenfire: Tudo no DOS não é texto simples! Como existiriam programas, para não mencionar praticamente todos os formatos de arquivos binários?
19413 Karan

11
Obter os dados do disquete não deve ser muito difícil; As unidades de disquete USB são muito baratas.
Aaron Miller

5
Apenas para atualizar, o pkzip funcionou como um encanto; -lo comprimido um arquivo 3000kb ~ para cerca de 300kb, provavelmente porque era um arquivo de texto delimitado por espaço com 2700kb de espaços em branco ...
Tarkenfire

17

O computador possui o QBasic instalado? Nesse caso, você poderá escrever um divisor de arquivos simples, algo como isto:

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

Isso dividirá seu banco de dados em pedaços de 1,3 MB, que devem caber confortavelmente em um disquete de 1,44 MB, mesmo após contabilizar a sobrecarga do FAT.

Editar: aqui está uma versão atualizada usando E / S binária, que é muito mais rápida, não apresenta problemas com caracteres Ctrl-Z e manipula corretamente os arquivos de entrada cujo tamanho não é múltiplo do tamanho do buffer. Testei-o no DOSBox e ele dividiu corretamente um arquivo de 3 MB de bytes aleatórios em pedaços.


IIRC, os pedaços podem ser remontados usando a bandeira binária e copiando, por exemplo copy /b foo_1.chunk + /b foo_2.chunk {...}. Não me lembro se ou não a versão Dos 5 de cópia tem a bandeira binário ...
Horatio

11
Também, se você open for binarye ler / escrever usando gete put, você não tem "problemas de caráter mágico"
horatio

@horatio: Obrigado pela dica. Também é muito mais rápido (embora eu suspeite que a diferença possa ser insignificante ao gravar em disquetes reais).
Ilmari Karonen

10

São apenas 3 megas, portanto, usar um PKZIP com extensão seria a solução mais fácil, como outros já disseram. Contudo

Se você tivesse esse problema e a unidade de disquete NÃO funcionasse, seria muito fácil usar a porta serial.

Para usar uma porta serial, você precisa de um programa de terminal DOS e, em seguida, executaria um protocolo como o ZMODEM, para transferir o arquivo a 115kbps, o que levaria menos de 5 minutos a 115200 kbps.

No seu laptop ou em qualquer outro PC moderno, você precisará de um adaptador USB-para-serial, um cabo de modem nulo e um programa de terminal que suporte o mesmo protocolo de transferência de arquivos. Esses cabos devem custar US $ 5 cada, na maioria das lojas de computadores decentes.

O melhor programa de terminal do MS-DOS que eu já usei foi chamado Telix versão 3.12.


11
Telix foi um programa muito bom, e eu também me lembro de usar o Terminate. Gostaria de saber se você já usou isso? Às vezes sinto falta do meu modem BBSes e USR favorito. Lembre-se de ser obcecado em criar arte ASCII animada uma vez!
1919 Karan

8

O PKZIP suporta a extensão de vários disquetes, e a Lenovo possui um aplicativo compatível com DOS chamado CHOPPER, que também fará isso.

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

A opção pkzip para expansão de disco (de documentos):

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


3

O advogado especificou explicitamente que o banco de dados fosse fornecido em formato eletrônico?
Caso contrário, e se este sistema de missão crítica tiver uma impressora funcional (matriz de pontos) conectada, você poderá imprimir o arquivo de texto usando o comando de impressão do DOS .
Por exemplo:

imprimir c: \ arquivo.txt / c / d: lpt1

Supondo uma velocidade de impressora de 100 lpm (~ 2,5 ppm) e 750 páginas de texto (quantidade estimada em arquivo de texto de 3 Mb de acordo com esta calculadora ), você poderá produzir uma cópia completa em cerca de 5 horas.


2

Talvez você possa dividir o arquivo de texto manualmente usando as ferramentas já presentes no DOS e recombiná-los no computador de destino? Como é tudo ASCII, deve ser muito mais fácil fazer isso do que tentar dividir um arquivo binário.


3
Tentei os dois editores que pude encontrar no sistema, mas os dois lançaram erros de "falta de memória" para mim, presumo que eles tentaram carregar o arquivo de 3 MB na memória ao mesmo tempo.
Tarkenfire

Eu não usaria um editor, mas acho que alguns argumentos para XCOPY, MORE ou talvez TYPE podem permitir que você divida grosseiramente o arquivo. (claro, PKZIP é muito mais fácil e quase garantido para trabalhar, mas isso poderia ser uma tentativa divertido)
Javier


2

Antes dos dias orgulhosos de onipresentes chips USB e uma placa de rede em todos os computadores, lembro-me de ligar com carinho dois computadores com cabos seriais e paralelos para transferências de dados em larga escala.

Eu tive que pesquisar no Google o método mais conveniente na era atual, mas parece meio semelhante ao que eu me lembro.

O File Maven é um utilitário de transferência de arquivos que permite fazer transferências via cabo serial ou paralelo. Você provavelmente não tem mais nada com uma porta serial, portanto, um adaptador serial para usb fornecerá uma conexão com a tecnologia moderna.

Esse cabo pode precisar de um adaptador de mudança de sexo, eu esqueço qual parte um PC tinha.

Quero me levantar e dar uma grande salva de palmas ao fabricante que foi responsável pelo disco rígido. HDD de 25 anos ainda em execução. Você pode imaginar as unidades SATA de hoje ainda em execução em 2038?


1

Você sempre pode encontrar uma unidade Zip / Jaz de 25 pinos no craigslist ou no ebay. No entanto, existem métodos melhores do que isso. :)


1

Que tal tentar encontrar uma versão antiga do Laplink, com o cliente sendo uma nova versão em execução no PC em que você deseja esses dados. Software disponível aqui: http://www.briggsoft.com/fmdos.htm


PCs modernos nem sequer teriam uma porta serial, muito menos uma porta paralela, mas acho que com um adaptador USB para serial, o Laplink seria uma boa idéia. Uma maneira muito mais fácil de transferir o conteúdo de um disco rígido inteiro ou de uma pasta inteira, do que a idéia do Telix + ZMODEM, mas essa abordagem é tecnicamente legal? "LapLink" a marca ainda está por aí, e talvez eles não gostem de pessoas baixando suas coisas do DOS.
22713 Warren P
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.