O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Problema com batch

Iniciado por amfsb, 23/12/2019 às 21:32

23/12/2019 às 21:32 Última edição: 04/04/2020 às 19:02 por Gabriel
Pessoal eu sei que o fórum não é sobre isso mais alguem sabe programação batch?
porque eu estava fazendo um código:
[box]@echo off
title [Nome]
color 0A
if "%1" neq "" ( goto %1)
pause > nul
goto Menu
:Menu
cls
echo 1. Iniciar
echo 2. Creditos
echo 3. Sair
set /p resposta=Digite o número da opção desejada e dê Enter:
if %resposta%==1 goto Iniciar
if %resposta%==2 goto Creditos
if %resposta%==3 goto Sair
echo.
:Creditos
cls
echo Créditos
echo.
echo Programado por Amfsb
pause
goto Menu
:Sair
cls
echo Obrigado por jogar!
pause
exit /b
:Iniciar
cls
echo --------------------------------------------------------------
echo Angelo esta sozinho em casa com sua mãe
echo			_________________________________
echo		   /                                 \
echo		  /                                   \
echo         /                                     \
echo        /---------------------------------------\
echo         |-------------------------------------|
echo         |-------------------------------------|
echo		 |   ____   ______	   _____           |
echo         |	|    | |      |   |     |		   |
echo		 |  |	 | |	  |   |	    |          |
echo         |	_____   ______	   _____	_____  |
echo		 | |     | |      |   |     |  |     | |
echo         | |	 | |	  |   |	    |  |	o| |
echo		 |_____________________________|_____|_|
pause
cls
color 0A
echo Ele esta assistindo TV em sua casa durante uma noite...
echo ╔══════════════════════════════════════════════════════╗
echo ║3 Vidas                                               ║
echo ║Ele ouviu um barulho vindo do segundo piso da casa...♥║
echo ╚══════════════════════════════════════════════════════╝
echo │										│
echo │										│
echo │										│ 
echo │										│
echo │ ~_------                             │
echo  _------_-_                            │    
echo - : O  O : 							│ │ \
echo   \  - /								│ │  \
echo  /-    :-                              │ │   \
echo / /    : │                             │ │   │
echo \ :====-: ─────────────────────────────┘ │   │
echo : ::  :                                 \│   │
echo : ::  :                                  │   │
echo [__][___\						         \│   │
echo									      \   │
echo										   \__┘
cls
pause


só que quando eu aperto a tecla 1 para iniciar o jogo simplesmente o arquivo batch fecha!
como resolvo isso?
Um iniciante ate virar profissional

15/01/2020 às 23:23 #1 Última edição: 15/01/2020 às 23:30 por Rhyan
Citação de: amfsb online 23/12/2019 às 21:32
Pessoal eu sei que o fórum não é sobre isso mais alguem sabe programação batch?
porque eu estava fazendo um código:
[box]@echo off
title [Nome]
color 0A
if "%1" neq "" ( goto %1)
pause > nul
goto Menu
:Menu
cls
echo 1. Iniciar
echo 2. Creditos
echo 3. Sair
set /p resposta=Digite o número da opção desejada e dê Enter:
if %resposta%==1 goto Iniciar
if %resposta%==2 goto Creditos
if %resposta%==3 goto Sair
echo.
:Creditos
cls
echo Créditos
echo.
echo Programado por Amfsb
pause
goto Menu
:Sair
cls
echo Obrigado por jogar!
pause
exit /b
:Iniciar
cls
echo --------------------------------------------------------------
echo Angelo esta sozinho em casa com sua mãe
echo			_________________________________
echo		   /                                 \
echo		  /                                   \
echo         /                                     \
echo        /---------------------------------------\
echo         |-------------------------------------|
echo         |-------------------------------------|
echo		 |   ____   ______	   _____           |
echo         |	|    | |      |   |     |		   |
echo		 |  |	 | |	  |   |	    |          |
echo         |	_____   ______	   _____	_____  |
echo		 | |     | |      |   |     |  |     | |
echo         | |	 | |	  |   |	    |  |	o| |
echo		 |_____________________________|_____|_|
pause
cls
color 0A
echo Ele esta assistindo TV em sua casa durante uma noite...
echo ╔══════════════════════════════════════════════════════╗
echo ║3 Vidas                                               ║
echo ║Ele ouviu um barulho vindo do segundo piso da casa...♥║
echo ╚══════════════════════════════════════════════════════╝
echo │										│
echo │										│
echo │										│ 
echo │										│
echo │ ~_------                             │
echo  _------_-_                            │    
echo - : O  O : 							│ │ \
echo   \  - /								│ │  \
echo  /-    :-                              │ │   \
echo / /    : │                             │ │   │
echo \ :====-: ─────────────────────────────┘ │   │
echo : ::  :                                 \│   │
echo : ::  :                                  │   │
echo [__][___\						         \│   │
echo									      \   │
echo										   \__┘
cls
pause


só que quando eu aperto a tecla 1 para iniciar o jogo simplesmente o arquivo batch fecha!
como resolvo isso?

Olha, sinceramente, não sei programar em bat, mas sei o que cada função faz, afinal, a estrutura do código não é muito diferente de outras linguagens.

Eu tenho 3 teorias:

- É sobre os ifs que você colocou como menu, tipo, "if %resposta% ==1 goto Iniciar", mas você, pelo menos pelo que vejo e entendo, você não declarou "%resposta".
- É possível que um dos pauses que você está usando está causando isso. Para mim, sempre que eu que seleciono 2 ou 3 (eu testei os outros para ver se dava o mesmo erro que o 1), aparece "Aperte qualquer tecla para continuar" e, quando aperto uma tecla, a tela fecha, como mágica.  :rainbow:
- Essa é a menos provável possível. O "if %resposta% ==1" deveria ter espaço entre o "==" e "1", pelo menos em outras linguagens, como RGSS3, é assim. Mas, como disse, é a menos provável, digamos que eu tenho 1% de chance de descobrir.  :holmes:

Veja se você consegue se encaixar em uma delas, caso não, acho que não posso fazer mais nada ;-;
^~^) -Rhyan.

05/02/2020 às 19:52 #2 Última edição: 05/02/2020 às 19:59 por Crixus
Eu trabalho pra empresas que usam servidores mais antigos, por isso programo em BATCH, eu acho que o problema no seu código é um caractere, vou reescrever ele de outras maneira e coloco aqui, espere um pouco.

Editado:
Agora que vi isso:


Por favor amigo, o suporte aqui é voluntário, se você estivesse numa comunidade de BatchScript saberia que são raros os usuários hoje, não vai aparecer um especialista do dia pra noite, lamento, mas esse tipo de educação eu não atendo. Passar bem.

Sem falar que existe alguma razão para alguém, voluntariamente, usar Batch (MS-DOS) hoje em dia ao invés de PowerShell (Windows) ou Bash/Shell Script (Unix)?

As empresas que trabalho tem por padrão sistemas 32Bits com Windows Server 2003, é dificil recriar os softwares de gerenciamento todos do zero pra PowerShell, a administração é de dados em XML.

Atualmente pra 32Bits eu estou usando AHK, por que apesar de não se visual, mas quando que fazer a parte visual basta criar uma GUI, adiantei muitos sistemas de rotina nos servidores por causa da limitação do BatchScript.

Eu não sou contra, o fato é que não é qualquer um que entende todas as regrinhas de escritas, não vou explicar se não o carinha ai vai entender onde está o erro no código.

Abraço.