O que é uma variável? E uma variável de ambiente? Aprenda nesse post!
É provável que a primeira coisa que você pense seja assim: “deve ser uma coisa que varia bastante”. Mas uma variável pode variar ou não, portanto isso ainda não nos ajuda a entender o que realmente ela é.
Uma variável é uma “String”, um texto chave, usado como SÍMBOLO para representar alguma outra coisa. Exemplo: poderíamos ter uma variável chamada data, que simboliza a data de hoje e sempre que “chamarmos” %data% vai aparecer a data de hoje ou utilizando uma variável com o nome completo de alguém: %nome% = Albert Einstein da Silva.
Veja o exemplo: “Hoje é %data%” = Hoje é 22/03/2014” , assim todo dia a frase vai estar com a data certa.
No Windows sempre que utilizamos uma variável, colocamos entre “%” (símbolo de porcentagem) e significa que você não quer escrever aquela palavra, mas o que ela REPRESENTA.
Existem variáveis que já são definidas previamente pelo próprio Windows para uso geral e é extremamente útil para os mais diversos scripts.
Anote bem essa lista:
- %CD% – diretório atual.
- %DATE% – data atual, formatada de acordo com a preferência do utilizador.
- %TIME% – hora atual, formatada com a preferência do utilizador.
- %RANDOM% – número aleatório entre 0 e 32767.
- %ProgramFiles% – caminho completo do diretório “Arquivos de programas”.
- %SystemDrive% – drive de instalação do sistema operacional.
- %systemroot% – diretório de instalação do sistema operacional.
- %WinDir% – diretório de instalação do sistema operacional.
- %SystemDirectory% – diretório de instalação da pasta system32.
- %USERNAME% – o nome do usuário logado.
- %HomePath% – diretório do usuário logado(sem o drive).
- %HomeDrive% – drive do diretório do usuário logado.
- %TEMP% – diretório temporário do usuário logado.
- %Tmp% – diretório temporário do usuário logado.
- %LogonServer% – nome do controlador de domínio onde o usuário está autenticado.
- %UserDomain% – nome do domínio que detém a conta do usuário.
- %ComSpec% – diretório onde é encontrado o comando (cmd.exe) – prompt do ms-dos.
- %ComputerName% – exibe o nome do computador atual.
Agora entenda o motivo de ser chamada como “variável”:
Alguns dos itens acima podem variar dependendo do computador… a data, nome do usuário em cada computador é diferente. Como usar a palavra “VOCÊ” , que pode representar qualquer pessoa do planeta e nesse momento significa você, que está lendo (mas várias pessoas podem ler essa postagem).
Imagine se você escrever um script que copia um arquivo direto para a área de trabalho… quando você executa no computador do “malaquias” , a área de trabalho dele fica nesse endereço: “C:\users\malaca\Desktop”
Já quando você executar no notebook da Mariazinha fica no endereço: “C:\users\mariazinha\Desktop”
Como fazer o nosso script entender que é na área de trabalho que se deve copiar aquele arquivo, já que cada caminho é diferente? Simples! Basta usar a variável %homePath% que dá o nome da pasta user nesse formato: “ \Users\Nomedousuario” e em cada computador aparecerá no lugar de “Nomedousuario” o nome do usuário. Note que ele não mostra em qual unidade está a pasta, obrigando a indicar.
Copy E:\coisas C:%homepath%\Desktop << Esse comando como exemplo copia os itens da pasta, coisas que estão na unidade E:(Hdd, pen drive ou cd) para a pasta desktop do usuário atual , independente se está no pc do Goku ou da Buma.
Não é complicado fazer um script que faz backup de todas as pastas do usuário com um único comando xcopy /E C:%homepath% e salvando o seu .bat . Ao executar, o efeito será copiar todas as pastas do usuário (Documentos, Imagens,…) para a pasta onde está o script.
Entendendo o comando xcopy com o parâmetro /E , copia pastas e subpastas e logo em sequência você vai especificar que A ORIGEM será a pasta do usuário e como NÃO ESTÁ DESCRITO NENHUM DESTINO , o computador entenderá que deve copiar todas pastas e arquivos para o diretório onde está o script.
Um script de uma linha pode copiar todos os arquivos das pastas padrões do usuário do Windows!
Crie a sua própria variável
É possível criar a própria variável e a partir dela fazer coisas muito interessantes. Para criar , use o comando Set de um jeito bem simples.
Set variável=conteúdo da variável
No lugar de variável, você coloca o nome da variável que deseja criar e o que ela vai representar você coloca na direita da igualdade. [pode usar espaços e não precisa de “Aspas”]
Segue exemplo: Set nome=Luis Inacio Lula da Silva, isso faz com que a variável %nome% sempre represente o nome “Luis Inacio Lula da Silva”
No caso de digitar o comando:
Echo Nosso presidente se chama %nome%
Resultado
Nosso presidente se chama Luis Inacio Lula da Silva
Mas não para aqui, afinal você pode transformar uma variável em algo que a pessoa digita no seu script, fazendo com que você consiga capturar algo digitado e colocar tudo “dentro” de uma variável. Para isso basta usar o parâmetro /P após o Set, ficando Set /p variável=.
Usando o comando Set /p variável= o script para de rodar , esperando que o usuário digite alguma coisa nele… tudo que for digitado após o enter fará parte da variável. Com isso conseguimos fazer perguntas e respostas, múltipla escolha, mini programas acionados por opções de texto e mais coisas.
Para entendermos com bastante clareza , convido você a copiar os comandos a seguir, colar no bloco de notas e salvar como .Bat e testar o resultado.
Title Converse comigo
@echo off
Color 1f
cls
ECHO Oi, Qual o seu nome?
Echo.
Set /p nome=
Echo Muito prazer %nome%
Echo Que nome Bonito!!!
Echo.
Echo Me diz ai, quantos anos voce tem?
Set /p idade=
echo.
Echo Nossa!! Nem parece que voce tem %idade% anos
Echo.
Echo Voce eh casado(a)? Sim ou Nao?
Set /p resposta=
echo.
Echo Ja dava para ver no seu rosto que %resposta%
Echo.
Echo Mas acho que estou me intrometendo demais
Echo Preciso ir embora
Pause
Echo …
Pause
Echo …..
Pause
Echo …….
Pause
Echo ……….
Pause
Echo Nao vai me dar tchau nao?????
Set /p resp=
Echo Tchau %nome%
Echo Bjos e se cuida, sou uma maquina mas posso te pegar um dia
pause
Acredito que as primeiras linhas não precisam ser explicadas se você está acompanhando as postagens sobre script. Caso ainda não tenha lido as postagens anteriores, confira em nosso blog.
A primeira linha após o Cls (limpar a tela) é um Echo que exibirá um texto na tela e estimula o usuário a responder e logo em seguida o comando Set /p nome= fica preparado para coletar o que é digitado e colocar dentro da variável %nome% que na próxima linha é utilizada em meio a uma resposta.
Todos os comandos Echo. (echo ponto) servem para PULAR UMA LINHA, – lembra?
Esse esquema segue nas perguntas a seguir , até uma parte no final ,em que são usados vários pauses, para ficar mais interativo.
Coloque todo o código acima no bloco de notas e salve como nomearquivo.bat e execute. Ao executá-lo, divirta-se com o resultado. Depois você pode acrescentar mais perguntas, modificar respostas e fazer o seu próprio programinha “respondão”.
Não esqueça que o conceito de variável é utilizado também no Linux e em quase todas as linguagens de programação existentes. Espero que tenham gostado e entendido como funcionam as variáveis do Windows.
No caso de qualquer dúvida, críticas ou sugestões, basta utilizar o campo para comentário abaixo.
Esse foi mais um post do Blog do Curso de Hardware Microcamp.
Faça um curso completo na melhor escola do Brasil >> microcamp.com.br