Anuncie aqui!

Vamos falar sobre uma coisa que existe desde os primórdios dos SO’s: Arquivos em lotes!

Vou falar, mais especificamente, sobre arquivos em lotes feitos no prompt do DOS.

Aqui tenho como computador de testes um pc com Windows XP Dark Edition. Meu prompt do DOS diz que é versão 5.1.2600.

Acontece que, eventualmente, preciso automatizar alguma coisa no Windows,o que me ajuda a executar ações variadas em praticamente qualquer aspecto que eu necessite. Mas o windows não ajuda, então sou forçado a usar o DOS.

Mas esse post é prático; vamos começar fazendo testes no prompt!

Abrindo o executar pode ser através do iniciar executar ou segure a tecla Windows + r. Na janela que abrirá, digitemos assim:

cmd

Vai abrir a simpática janela preta do DOS. Ele te leva direto para o diretório de usuário. Eu acho isso aborrecido, então vamos limpar a tela:

cd\
cls

Pronto. Podemos começar.
Sabia que é possível escrever resultados dos comandos do DOS em arquivos com apenas um operador e um parâmetro? Vamos ver isso na prática.
Abra o seu explorer em c:, ou o drive que vc achar melhor. Eu usarei c: aqui.
Aliás, podemos fazer isso pelo prompt:

explorer c:

Continuemos:

echo teste

Você deve ter percebido que o comando echo escreve tudo o que vier depois na janela do prompt, certo? Então façamos isso:

echo supresa > c:\teste.txt

Agora dê uma olhada na janela do explorer. “O que será aquilo!? É o arquivo teste que você criou!” Se abri-lo verá escrito “supresa” no corpo do texto.

Vamos escrever mais. Feche o arquivo e volte para a telinha do prompt:

echo ola > c:\teste.txt

Se você abrir o arquivo agora, verá que “supresa” foi sobrescrito por “ola”.

E se quisermos supresa e ola no mesmo arquivo?

Então vamos fazer assim:

echo suprea > c:\teste.txt
echo ola >> c:\teste.txt

O operador “>>”, como você percebe, implementa o que já existe. Isso é, ele não vai substituir uma coisa por outra, mas vai só acrescentar!

Façamos alguns testes novos:

cls
dir > c:\teste.txt

Olhe o arquivo. Ali está o resultado do comando “dir”

Podemos fazer isso:

cls
echo Conteudo do meu c:!!!! > c:\teste.txt
echo. >> c:\teste.txt
dir >> c:\teste.txt

Percebe que “echoseguido de ponto imprime uma linha em branco? Legal né?
Agora que tal nos aprofundarmos mais “programáticamente”? Vamos começar com algo simples: arquivos em lote simples que façam coisas simples. Depois arquivos em lotes que leiam variáveis.

Arquivos em lote, em inglês, são chamados de arquivos “batch”. No DOS, um arquivo em lote recebe a extensão “bat”. Assim, podemos salvar uma série de comandos usados com freqüência em um único lugar.

Já que estamos no DOS, façamos tudo em DOS. Digite o seguinte:

edit c:\sidewin.bat

Observe no Explorer que o arquivo ainda não existe.
Você viu que abriu um editor com fundo azul. Este é o conteúdo de sidewin.bat.

Vamos fazer alguma coisa aqui. Digite o seguinte:

cls
echo.
echo Data atual:
echo %date%
echo.
echo.
pause

Agora pressione Alt+f e escolha S para salvar. Agora você vê o iconezinho em bat no Explorer, ou seja, ele existe.
Dê um Alt+A e escolha X para sair daí.

Agora que você está novamente na telinha escura do DOS, dê um cls para limpar a tela e digite:

sidewin

Deve ter aparecido algo assim:

C:\>echo.

C:\>echo Data atual:
Data atual:
C:\>echo 16/07/2009
16/07/2009
C:\>echo.

C:\>echo.

C:\>pause
Pressione qualquer tecla para continuar. . .

Percebe como os comandos escritos no bat foram executados como se tivessem sido escritos no prompt?
Algo precisa ser feito! Digite…

edit c:\sidewin.bat

…ou apenas use a seta para cima para achar esse comando no histórico.

Na primeira linha do BAT, antes do primeiro echo, digite o seguinte:

@echo off

Salve, saia do editor e execute de novo.

Agora sim! Os comandos desapareceram e a data foi escrita corretamente! Parabéns, você escreveu um arquivo BAT!

@echo off é um comando usado para esconder os demais comandos. Você talvez tenha percebido que esse comando, no entanto, também não aparece. Isso não é uma coincidência, pois o que aconteceu foi que o arroba antes do comando esconde esse comando no DOS. Isso quer dizer que, se você quiser, pode escrever todo o arquivo bat com arrobas na frente. Claro que é muito pouco prático, para não dizer idiota.

%date% é uma variável do DOS que retorna o valor da data de acordo com os parâmetros do sistema. Nesse caso, meu sistema, que está em português, me deu o valor da data na formatação dd/mm/aaaa. Dependendo da distribuição do windows, essa formatação pode mudar. Mas não vamos nos aprofundar em datas por hoje, vamos continuar. Queremos agora passar um parâmetro. O que é isso, você se pergunta?
Leia e verás…
Vamos começar um novo bat. Agora ele vai te saudar de acordo com seu nome. Siga o modelo:

edit ola.bat

@echo off
cls
set nome=%1
echo.
echo Ola’%nome%!
echo Hoje e’%date%
echo.
pause

Salve e saia do editor.
Agora, se seu nome for, por exemplo, Manfray, digite o seguinte comando:

ola Manfray

Então. “Manfray” aqui nada mais é do que um parâmetro.
Dentro do bat o parâmetro passado é reconhecido pela ordem em que foi escrito.

Depois do nome do arquivo BAT (”ola”), foi escrito o nome, que é o parâmetro 1 do código. Os parâmtros são identificados dentro do bat através do símbolo de porcentagem, assim: %1, %2, %3, etc.
Nós fomos mais além e declaramos uma variável com o comando set. O nome da variável é nome. Note que era perfeitamente possível escrever o conteúdo do parâmetro 1 sem usar a variável nome, mas dar um nome para a variável é sempre válido, pois fica muito mais fácil entender o código.

Portanto, na sua telinha do DOS, digite: exit.

Espero que todo tenha gostado e que seja de bom uso a todos, qualquer dúvida acesse nosso fórume tire suas dúvida, deixe seu comentário ou sua sugestão.

Bom senso e aprendizagem sempre.

[starrating template_id=4]

0 comentários:

Postar um comentário

DESCRIÇÃO-AQUI.