Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
09/03/01992

< SUBSTITUIÇÕES >


Vamos ver que mágicas poderemos fazer com o conceito de drives lógicos. A mais simples é "enganar" o DOS e fazê-lo tratar um diretório como se fosse um drive por meio do comando "subst". Complicado? Que nada: na verdade é muito simples e pode ser útil. E um bom exemplo tornará as coisas claras. As eventuais modificações no seu sistema poderão ser desfeitas sem prejuízo algum. Faça o seguinte:

Examine seu micro e veja que letra corresponde ao último drive efetivamente usado. Se ele tiver disco rígido, verifique o número de partições: a primeira será sempre C: e as outras receberão as letras subseqüentes (por exemplo: em um disco rígido com três partições, a última será a E). Se você instalou um disco RAM em seu Config.Sys, ele receberá a próxima letra (F, no exemplo).

Agora vamos ver qual a maior letra que pode ser atribuída a um drive lógico. Exiba na tela o arquivo Config.Sys (entre no diretório raiz de seu disco de boot e comande "type config.sys") e procure por uma linha que comece por "lastdrive" (em maiúsculas ou minúsculas, tanto faz). Se a linha lá estiver, o último drive lógico será o que corresponde à letra no final da linha, depois do sinal de igual. Se a linha não existir, ele será o drive E, o default do sistema.

Agora você já sabe qual a última letra de drive usada por seu sistema e qual a maior que ele pode usar. Note que esta última não pode ser menor que a primeira: na pior das hipóteses serão iguais. E se forem iguais, para fazer a experiência você terá que incluir o comando "lastdrive" em seu Config.Sys. Recomendo que somente o faça se souber exatamente como fazê-lo, seguindo as instruções que já foram sobejamente repetidas aqui mesmo. Neste caso, inclua lá uma linha contendo apenas:

LASTDRIVE=Z

e dê um novo boot para que ela faça efeito.

Agora, examine a árvore de diretórios de seu disco rígido e escolha um diretório que não seja o raiz e que, de preferência, tenha subdiretórios dele derivados. E use o comando "subst" para atribuir a ele uma letra de drive não usada pelo sistema (maior que a do último drive em uso). Digamos que você tenha escolhido o diretório C:\UTIL e a letra G. A sintaxe do comando é simples: primeiro o nome do comando, seguido da letra do drive lógico e da via do diretório a ser substituído, separado por espaços. Comande:

subst g: c:\util

Deste momento em diante o sistema tratará o diretório C:\UTIL como se fosse o drive G. Tudo o que você mandar ler ou gravar no drive G será lido ou gravado naquele subdiretório. Experimente: do prompt do sistema, digite apenas "G:" e ENTER. O DOS vai lhe informar que você está no drive G. Agora, peça o diretório com o comando DIR e veja na tela todos os arquivos do diretório que você substituiu pelo drive G. Se houver subdiretórios, você poderá tratá-los como se derivassem do diretório raiz do drive G.

O mais interessante é que você não "perdeu" o diretório original. Ele continua existindo e o sistema respeitará todas as referências a ele. Quer ver? Volte para o drive C, mude para o diretório raiz e comande:

DIR C:\UTIL

Veja os arquivos do diretório aparecerem na tela. Mude para ele com "CD \UTIL" e repare como o sistema obedece. Depois do comando SUBST você pode tratar seu diretório C:\UTIL tanto por seu próprio nome quanto por "G:".

Se, depois de uma substituição, você comandar apenas "SUBST", sem parâmetros, o sistema responderá com a lista das substituições efetuadas. No caso do exemplo, você receberia uma linha contendo apenas "G: => C:\UTIL". Se desejar desfazer a substituição, basta comandar "subst g: /d" (o parâmetro /d simbolizando "delete") e o sistema "apaga" o drive G.

Brinque um pouco com seu novo "drive": copie arquivos para ele, copie alguns destes para outros drives ou diretórios e depois os apague, tanto tratando-o como drive quanto como diretório. Você verá que o sistema reagirá de acordo. Quando se cansar, basta desfazer a substituição com o comando SUBST seguido do drive lógico utilizado e do parâmetro "/d" (e, se for o caso, reconstituir seu Config.Sys original).

Gostou da brincadeira? Mas isto não é apenas brincadeira e pode ser muito útil. Veja alguns exemplos: se você usa seu editor de textos para editar arquivos em diversos diretórios diferentes e está cansado de digitar longas vias de diretório cada vez que for procurar por um arquivo em outro diretório, substitua seus diretórios por drives lógicos e veja como sua vida fica mais fácil.

Se você tem um dos velhos programas que não aceitam vias de diretório e somente sabem procurar por arquivos em um drive, substitua o diretório dos arquivos de dados por um drive lógico. Pode ser até mesmo um dos existentes: se você substituir um diretório pelo drive A, o sistema obedece. Evidentemente, você não poderá usar o verdadeiro drive A enquanto a substituição estiver vigorando: experimente. Você pode até mesmo substituir um drive por outro (o que era feito antigamente com o comando "assign", que o manual do DOS recomenda não mais usar: use "subst" em vez dele).

Finalmente, o melhor: é cada vez maior o número de programas que exigem que seu diretório esteja contido na variável ambiental PATH. Que, lamentavelmente, tem um limite de apenas 127 caracteres. Quer incluir mais uma (longa...) via de diretório na PATH e falta espaço? Ponha em seu Autoexec.Bat (antes da linha que contém o comando "path") uma linha com o comando "subst", substituindo-a por um drive lógico e inclua este drive na PATH. Você poderá continuar usando seu diretório como sempre, referindo-se a ele com seu nome completo, como se nada houvesse acontecido. Não obstante, como o sistema encara qualquer referência a ele como se fosse feita ao drive lógico que o substitui, ele estará na PATH. Simpático, não?

B. Piropo