Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Comando Call + Goto

3 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Comando Call + Goto Empty Comando Call + Goto Dom maio 01, 2016 10:55 am

Beto Rubini



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

2Comando Call + Goto Empty Re: Comando Call + Goto Dom maio 01, 2016 5:48 pm

MasterMC

MasterMC

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.

3Comando Call + Goto Empty Re: Comando Call + Goto Seg maio 02, 2016 10:43 am

Beto Rubini



Entao, é exatamente isso que pretendo fazer, mas quando informo outro valor para a variável, o mesmo código passa a não funcionar


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.

4Comando Call + Goto Empty Re: Comando Call + Goto Ter maio 03, 2016 2:53 pm

MasterMC

MasterMC

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.

5Comando Call + Goto Empty Re: Comando Call + Goto Ter maio 03, 2016 3:15 pm

Beto Rubini



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

6Comando Call + Goto Empty Re: Comando Call + Goto Ter maio 03, 2016 3:42 pm

Beto Rubini



Esqueci de comentar, as variáveis externas estão todas funcionando, pois o script em execução carrega as mesmas.

7Comando Call + Goto Empty Re: Comando Call + Goto Dom maio 22, 2016 5:20 pm

h4x0rbr2016

h4x0rbr2016

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

Pssn gosta desta mensagem

8Comando Call + Goto Empty Re: Comando Call + Goto Dom maio 22, 2016 5:25 pm

h4x0rbr2016

h4x0rbr2016

No seu caso você pode fazer o seguinte:

Código:
if %varmenu% == 0 (call "%dir_bat_nome%" & goto :MENUINICIAL)

Pssn gosta desta mensagem

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos