Ir ao conteúdo

Bat como criar uma variaver que de para modificar em outros arquivos


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

preciso fazer uma vareavel  em um .bat que de para acessar de outro bat tipo

 

set /p nome=Digite seu nome: 

 

e depois em outro bat

 

echo %nome%

 

como faria isso?

  • Solução
Postado

Para criar uma variável permanente pode usar o comando setx:

 

Batch01:

@echo off
set /p "nome=Digite seu nome: "
setx nome "%nome%"

Batch02:

@echo off
echo Ola %nome%
pause

 

Ou então você pode salvar o conteúdo da variável em um arquivo de texto e abrir no outro batch:

 

Batch01:

 

@echo off
set /p "nome=Digite seu nome: "
echo %nome%>nome.txt

 

Batch02:

 

@echo off
set /p nome=<nome.txt
echo Ola %nome% como vai?
pause
                 

 

  • Obrigado 1
Postado

@ricardo_brno 2 já tentei fazer isso mais não deu certo, talvez coloquei errado.

o setx ele deixa setado mesmo depois de desligar o pc?

precisava de um if que que soubese se o arquivo já foi gerado ou não, também iria ajudar bastante.

Postado

@b.0463 Bem duas técnicas que vale mencionar aqui "Zerar" uma variável que define seu valor igual a zero e excluir uma variável. Digamos que o nome da variável seja "nome".

 

Zerar variável com comando setx:

setx nome ""

 

Zerar variável com comando set:

set nome=

 

Excluir variável do usuário:

reg delete HKCU\Environment /v "nome" /f

 

Excluir variável do sistema:

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "nome" /f

 

* As variáveis do usuário só valem para o usuário que as criou já as variáveis do sistema valem para todos os usuários do Windows. Variáveis do sistema são criados com o comando setx nome "qualquervalor" /M

 

O /i no IF indica que devem ser ignoradas minúsculas e maiúsculas. Digamos que o valor da variável nome seja "Ricardo"

 

IF "%nome%"=="ricardo" echo Ola Ricardo

Essa condição resultaria em falso porque o valor da variável é Ricardo com R maiúsculo

 

IF /i "%nome%"=="ricardo" echo Olá Ricardo

Já essa condição resultaria em verdadeiro porque ele ignora minúsculas e maiúsculas.

 

Ou

 

set /p Pergunta=Deseja deletar o Arquivo nome.txt (S) (N)?

IF /i "%Pergunta%"=="s" del /q /f nome.txt

O /i faz com que tanto a pessoa digitar "S" ou "s" vai deletar o arquivo, se não tiver o /i só deleta se a pessoa digitar "s" minúsculo."

 

O comando para ver se uma variável (digamos nome) está zerada ou não é:

 

IF Defined nome (Echo A variavel nome não está zerada) else (echo A variável nome está zerada)

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!