Ir ao conteúdo
  • Cadastre-se

Outro Definição de Valor de Variável via cmd (.bat)


Posts recomendados

Caros,
Estou automatizando um processo interno na empresa e para isso estou fazendo uma pequena ".bat" o processo ja esta funcional porém queria dar uma melhorada na coleta de uma informação que estou usando uma variável, basicamente gostaria de : 

Ou predefinir os valores que podem ser inseridos na variavel   (0001,0002,0003,0004,0005,0006 ...)
Ou  fazer com que seja sempre setado o valor com 4 posições. ( Se o usuario inserir 1 , converte para 0001 , se insere 39 converte para 0039)

echo Informe o codigo e pressione Enter: 
@set /p var=

Alguém sabe se isso é possivel via CMD? (.bat) 

Link para o comentário
Compartilhar em outros sites

Aqui tem um exemplo que coloca zeros na frente, informa erro se a pessoa colocar outra coisa que não sejam números, e só permite no máximo 4 dígitos. Ele está em loop para fazer teste mesmo a pessoa colocando tudo certo ele volta ao inicio mais da para desfazer facilmente:

 

 


@echo off
:Inicio
cls
echo.
set /p Numero=Entre com um n£mero: 

for /f "delims=0123456789" %%a in ('echo %Numero%') do set Teste=%%a

if defined Teste goto Erro
if "%Numero:~0,1%"==" " Goto Erro
if Not "%Numero:~0,-4%"=="" Goto Erro2

if "%Numero%"=="" set Numero=0000& Goto Resultado
if "%Numero:~0,-1%"=="" set Numero=000%Numero%& Goto Resultado
if "%Numero:~0,-2%"=="" set Numero=00%Numero%& Goto Resultado
if "%Numero:~0,-3%"=="" set Numero=0%Numero%& Goto Resultado

:Resultado
echo O n£mero final ‚: %Numero%
echo.
pause
Goto Inicio

:Erro
cls
echo.
echo Erro, favor insira apenas n£meros...
echo.
pause
set Teste=
Goto Inicio

:Erro2
cls
echo.
echo Erro, favor insira no m ximo 4 digitos...
echo.
pause
set Teste=
Goto Inicio

InserirApenasNumeros.zip

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

11 horas atrás, ricardo_br disse:

Aqui tem um exemplo que coloca zeros na frente, informa erro se a pessoa colocar outra coisa que não sejam números, e só permite no máximo 4 dígitos. Ele está em loop para fazer teste mesmo a pessoa colocando tudo certo ele volta ao inicio mais da para desfazer facilmente:

 

 

 


@echo off
:Inicio
cls
echo.
set /p Numero=Entre com um n£mero: 

for /f "delims=0123456789" %%a in ('echo %Numero%') do set Teste=%%a

if defined Teste goto Erro
if "%Numero:~0,1%"==" " Goto Erro
if Not "%Numero:~0,-4%"=="" Goto Erro2

if "%Numero%"=="" set Numero=0000& Goto Resultado
if "%Numero:~0,-1%"=="" set Numero=000%Numero%& Goto Resultado
if "%Numero:~0,-2%"=="" set Numero=00%Numero%& Goto Resultado
if "%Numero:~0,-3%"=="" set Numero=0%Numero%& Goto Resultado

:Resultado
echo O n£mero final ‚: %Numero%
echo.
pause
Goto Inicio

:Erro
cls
echo.
echo Erro, favor insira apenas n£meros...
echo.
pause
set Teste=
Goto Inicio

:Erro2
cls
echo.
echo Erro, favor insira no m ximo 4 digitos...
echo.
pause
set Teste=
Goto Inicio

 

InserirApenasNumeros.zip 488 B · 1 download

@ricardo_br Não consegui absorver a logica em questão,pois pelo que entendi ele esta gerando uma nova linha ": Resultado"  com o resultado validado.
Mas nao consegui inserir o bloco em minha instrução para que tal resultado se torne a variável a ser usada.

Abaixo segue o bloco que estou usando e precisava que esse resultado virasse o valor de VAR.

 

"echo Informe o codigo e pressione Enter: 
@set /p var=
if %VAR% GEQ 100 goto Codigo
if %VAR% LEQ 100 goto altera
:Codigo
echo Informe um codigo valido e pressione Enter: 
@set /p var=
if %VAR% GEQ 100 goto Codigo
if %VAR% LEQ 100 goto altera" 
 

 

 

Link para o comentário
Compartilhar em outros sites

Eu não sei se entendi. Você quer que se a variável seja maior ou igual 100 seja executado a parte em :Codigo se a variável for menor ou igual a 100 seja executada a parte em :Alerta e depois mostre a variável com zeros na frente tipo:

 

0190 e maior que 100

0080 e menor que 100

 

Veja se algo parecido com isso:

 

b9fHgOg.gif

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@ricardo_br Vou tentar detalhar melhor o objetivo final.
 

Essa variável que estou coletando, hoje estou com o seguinte pedido para o usuário:

 

" Insira o codigo de sua empresa com 04 digitos."

 

O dado inserido acima ira alimentar a variável 

Esse pedido se faz necessário porque  dentro da sequencia dos processos do .bat 

tenho a seguinte instrucao:

fart C:\w\config.xml "xxxx" "%var%" 

Que tem objetivo de alterar dentro do  arquivo de configuração todos os campos que estão como "xxxx" pelo que foi digitado pelo usuario "0002".

O valor em questao tem que ser sempre de 4 posições, pois assim é a estrutura do arquivo de configuração.

Como alguns usuario por vezes desconsideram o pedido de inserir com 4 digitos, queria limitar isso ja na coleta, ou seja se inserir 2 sera convertido para 0002.

As condicoes que coloquei é porque so temos 100 lojas portanto se o usuario inserir o valor 101 da erro e volta ao menu

se inserir 99 ele converte para 0099 e da sequencia nas instrucoes.


Desculpe o grande texto, mas foi pra tentar detalhar e peco desculpas tambem pela amolacao. srsrsrsr
 

 

Link para o comentário
Compartilhar em outros sites

@ricardo_br Funcionou plenamente aqui, te agradeço imensamente pelo auxilio.
Se não for abusar muito (risos) tive uma ideia aqui que é o seguinte.

O projeto em questão foi elaborado rodar em Win64 por sua vez utiliza-se (C:\"Program Files (x86)") seria possível inserir no inicio do .bat uma  validacao "Oculta" se existe o diretorio C:\"Program Files (x86)"  e caso tenha siga o fluxo normal do bat  caso nao tenha Crie o mesmo e depois siga?

 

Att 

Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!