Home Tutoriais Scripting Criando Scripts BATCH – COMANDO SET (Variáveis de ambiente)

Criando Scripts BATCH – COMANDO SET (Variáveis de ambiente)

O comando set é um comando extremamente poderoso. Sua função é exibir, definir e alterar variáveis de ambiente.
Sempre nos deparamos com documentações técnicas onde é muito usado as variáveis de ambiente.
Por exemplo: %SYSTEMROOT%, ou %SYSTEMDRIVE%
Para consultar as variáveis de ambiente no prompt de comando simplesmente digite: SET


Essas variáveis de ambiente são do sistema, porém podemos definir nossas próprias variáveis.
A definição de variáveis é bem simples:
As variáveis possuem um nome, exemplo computername, mas devemos usar  %  para fazer o uso das variáveis em scripts, como no exemplos %computername%.

SET [[variável]=[cadeia de caracteres]]

-> script5.bat
---------------------------------------
@ECHO OFF
CLS
SET SRT=SecurityResponse
MD C:%SRT%
COPY C:*.LOG /s C:%SRT%
---------------------------------------
Neste exemplo será definida a variável SRT, facilitando a criação de um diretorio e copia de arquivos.


Operações matemáticas
SET /A expressão

 

( )

Agrupamento

! ~ -

Operadores Unários

* / %

Operadores Aritméticos

+ -

Operadores Aritméticos

<< >>

Alternância Lógica

&

bit a bit E

^

bit a bit exclusivo OU

|

bit a bit OU

=   *=   /=   %=   +=   -=   &=   ^=   |=    <<=   >>=

Atribuição


Separador de expressões


-> script6.bat
---------------------------------------
@ECHO OFF
SET /A SOMA=2+5
ECHO SOMA DE 2+5=%SOMA%
SET /A DIVISAO=9/2
SET /A MOD=9%%2
ECHO DIVISAO DE 9/2=%DIVISAO% COM RESTO=%MOD%
SET /A MULT=7*7
ECHO MULTIPLICACAO DE 7X7=%MULT%
---------------------------------------
Neste exemplo o script gera vários valores de operações matemáticas básicas.


Interação com o usuário
SET /P variável=[cadeia_do_prompt]


-> script7.bat
---------------------------------------
@ECHO OFF
CLS
SET /P NOME=QUAL O SEU NOME ?
ECHO OI %NOME%, VOCE ESTA USANDO O COMPUTADOR %COMPUTERNAME%
---------------------------------------
Neste exemplo o  script lê o nome do usuário e imprime na tela o uma mensagem personalizada com seu nome e o computador que esta usando.

Expansão de variáveis.
Uma mesma variável pode ser utilizada diversas vezes em um script e também pode ser definida com valores diferentes durante a execução do script.

Por padrão a expansão de variável  atrasada é desabilitado.
Isso será visto adiante no comando “SETLOCAL”.

Última atualização (Sáb, 03 de Julho de 2010 23:10)

 


Artigos relacionados:

Powered By relatedArticle

Comentários 

 
0 #9 Anônimo 06-10-2011 22:13
Obrigado pelo post! Facilitou em meus trabalhos!

Grato, Anônimo.
Citar
 
 
0 #8 Kgmelo 04-10-2011 18:33
Amigo, boa tarde.
To precisando criar uma BAT para instalar uns pacotes ".MSI" pela rede. EX: "\\servidor\paco tes\pacote1.msi" e "\\servidor\paco tes\pacote2.msi". Se for possível instala-los em modo "invisível", melhor ainda. Vc poderia me ajudar, por favor?
Citar
 
 
0 #7 roberto grando 27-09-2011 23:46
bom dia, estava olhando seus exemplos de comando do DOS e gostaria de saber como criar um arquivo com a data do dia, lembro que já fiz, mas não me recordo, se souber poderia me encaminhar? Desde já obrigado.
Citar
 
 
0 #6 luiz carlos 03-09-2011 02:34
date /t=%datee%

set /p 1=02/09/2011
set /p 2=03/09/2011

IF %datee% EQU 1 (GOTO dirr) ELSE (
IF %datee% EQU 2 (GOTO hora) ELSE (
GOTO erro))

:dirr
dir /p c:\Backup\teste .rar
rem teste%dataaa%.rar
pause

:hora
time /t
pause

: erro
echo invalido
pause


qual o meu erro? por que nao funciona?
Citar
 
 
+1 #5 Infamous 21-08-2011 23:14
gostaria de saber se é possível resolver equações como neste exemplo: 4x.-2y= 98
Citar
 
 
+1 #4 KaYns 06-02-2011 15:23
ei jhow acontece.....
a logica é show né ?

@echo off
echo escolhe um dia!
set /P dia=
set /a dianegativo=%dia%-1
set data=date %dianegativo%/12/2009
date /t
pause
Citar
 
 
0 #3 Antonio pedro 28-10-2010 22:32
Galera!
Gostaria de saber como eu faço para cria uma bat para criar uma variável de ambiente.
Ex:
nome da variável: lm_license_file
valor da variável: 2700@mi
Citar
 
 
0 #2 Daniel Donda 29-09-2010 16:49
Citando FABIO:
Gostaria de saber como mostrar em echo a data - 1

echo %date%=%date%-1
só que não dá certo, o objetivo é mostrar a data atual menos 1 dia.

Obrigado


Olá meu amigo, hoje que eu ví que eu respondi em outro comentario.

Mas vamos lá

@ECHO OFF
CLS
REM Separa dia, mes e ano
for /F "delims=/ tokens=1-3" %%A IN ('Date /t') DO @(
SET DIA=%%A
SET MES=%%B
SET ANO=%%C
)

REM Arrumando o problema do 08 e 09 não serem números válidos
IF %DIA%==08 (
SET DIA=8) ELSE (
IF %DIA%==09 (
SET DIA=9) )

REM Exibe a data de hoje
Echo Hoje: %DIA%/%MES%/%ANO%

REM subtrai 1 e exibe
Set /a M1=%DIA%-1
Echo Menos 1 : %M1%/%MES%/%ANO%
Citar
Citar
 
 
0 #1 FABIO 09-09-2010 14:23
Gostaria de saber como mostrar em echo a data - 1

echo %date%=%date%-1
só que não dá certo, o objetivo é mostrar a data atual menos 1 dia.

Obrigado
Citar
 

Adicionar comentário


Código de segurança
Atualizar

World's Top Web Hosting providers awarded and reviewed. Find a reliable green hosting service, read greengeeks review