- Beto Rubini
- Idade : 28
Comando Call + Goto
Dom Maio 01, 2016 10:55 am
Ja fiz algumas buscas, e encontrei algo sobre usar o comando "Call" para carregar um arquivo.bat externo e no mesmo comando indicar um "goto INICIO" por exemplo.
Mas não consigo faze-lo funcionar como esperado.
Segue o exemplo abaixo
Se alguem puder me ajudar.
Obg
Mas não consigo faze-lo funcionar como esperado.
Segue o exemplo abaixo
- Código:
set "dir_bat=Pasta\arquivo.bat"
set "var=1"
if %var%==1 (call "%dir_bat%" "goto INICIO")
Se alguem puder me ajudar.
Obg
- MasterMC
- Idade : 23
Re: Comando Call + Goto
Dom Maio 01, 2016 5:48 pm
O que você está fazendo usando o call dessa forma é chamar o arquivo batch e passar "goto INICIO" como parâmetro. Explique exatamente o que você quer fazer, posta aqui o código desse arquivo batch, assim poderemos analisar melhor a situação.
- Beto Rubini
- Idade : 28
Re: Comando Call + Goto
Seg Maio 02, 2016 10:43 am
Entao, é exatamente isso que pretendo fazer, mas quando informo outro valor para a variável, o mesmo código passa a não funcionar
sendo que as variáveis dir_bat_home e dir_bat_clientes estão definidas em um arquivo .bat externo.
contornei de outra forma o que desejava fazer, mas gostaria de entender como esse comando funciona, indicando " call "variável" goto"
fica dificil postar o batch no qual estou "trabalhando" pois tratam-se de vários arquivos, um batch dependente de outro e de pastas e arquivos .txt externos. se houver alguma maneira para postar tudo, me indiquem por favor.
- Código:
if %varmenu%==0 (call "%dir_bat_home%" "goto MENUINICIAL")
if %varmenu%==1 (call "%dir_bat_clientes%" "goto CONFIRMACADASTRO")
sendo que as variáveis dir_bat_home e dir_bat_clientes estão definidas em um arquivo .bat externo.
contornei de outra forma o que desejava fazer, mas gostaria de entender como esse comando funciona, indicando " call "variável" goto"
fica dificil postar o batch no qual estou "trabalhando" pois tratam-se de vários arquivos, um batch dependente de outro e de pastas e arquivos .txt externos. se houver alguma maneira para postar tudo, me indiquem por favor.
- MasterMC
- Idade : 23
Re: Comando Call + Goto
Ter Maio 03, 2016 2:53 pm
Primeiramente, você não tem como dar call em variáveis externas, elas tem que estar definidas no batch em execução. O comando call serve para executar um rótulo ":nome" e depois retornar ao mesmo ponto de execução do batch atual, ou chamar um arquivo ".bat" externo, também retornando ao ponto de execução depois de finalizar a execução do script batch. Esse "goto" que vocês está mandando como parâmetro não será executado, ele será passado como uma variável de linha de comando, que deve ser lida e interpretada para que haja algum efeito em tempo de execução. Se você quer que funcione, vc deve saber no batch em execução o nome do script a ser chamado pelo "call", quanto ao processamento dos parâmetros eu n sei oq vc está fazendo pois n tenho acesso a um script de exemplo.
- Beto Rubini
- Idade : 28
Re: Comando Call + Goto
Ter Maio 03, 2016 3:15 pm
Estou definindo a variavel %varmenu% no script em execução e em seguida, também no script em execução eu "chamo" o batch externo que possui o código enviado a cima.
script em execução
Script externo definido pela variável %dir_bat_cabecalho%
eu gostaria que se a condição fosse atendida, que fosse ao "goto" indicado e não continuasse a execução do script que está atualmente em execução.
Desculpe se não consegui me fazer entender
script em execução
- Código:
rem defini variavel e chama arquivo externo
set "varmenu=1"& call %dir_bat_cabecalho%
rem sequencia do script em execução
:CADASTRAR
set varmenu=""
call %dir_bat_cabecalho%
echo -------------------------------------------------
echo Aguarde....
echo -------------------------------------------------
echo.
rem e por ai vai a continuação do script
Script externo definido pela variável %dir_bat_cabecalho%
- Código:
cls
echo.Data:%date%
echo.
echo %prog_name% [v%prog_version%]
echo.
Rem [ir para funções]
if %varmenu%==0 (call "%dir_bat_home%" "goto MENUINICIAL")
if %varmenu%==1 (call "%dir_bat_clientes%" "goto CONFIRMACADASTRO")
if %varmenu%==2 (call "%dir_bat_Pesquisar%")
if %varmenu%==3 (call "%dir_bat_modificar%")
eu gostaria que se a condição fosse atendida, que fosse ao "goto" indicado e não continuasse a execução do script que está atualmente em execução.
Desculpe se não consegui me fazer entender
- Beto Rubini
- Idade : 28
Re: Comando Call + Goto
Ter Maio 03, 2016 3:42 pm
Esqueci de comentar, as variáveis externas estão todas funcionando, pois o script em execução carrega as mesmas.
- h4x0rbr2016
- Idade : 31
Re: Comando Call + Goto
Dom Maio 22, 2016 5:20 pm
Quando eu Preciso chamar um arquivo bat externo, eu geralmente coloco uma variável dentro desse batch externo.
- Código:
@echo off
color 0a
set vartemp=%tmp%\battemp.bat
title ^< Chamar variavel de batch externo ^>
:begin
echo.&echo.
(:: aqui fica uma variável no batch externo
set X=1
) >> "%vartemp%"
if exist "%vartemp%" (call "%vartemp%")
:: Seu menu
if %X% EQU 0 (goto :MENUINICIAL)
if %X% EQU 1 (goto :CONFIRMACADASTRAO)
:: CONTINUA SEU CÓDIGO
- h4x0rbr2016
- Idade : 31
Re: Comando Call + Goto
Dom Maio 22, 2016 5:25 pm
No seu caso você pode fazer o seguinte:
- Código:
if %varmenu% == 0 (call "%dir_bat_nome%" & goto :MENUINICIAL)
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum