2016-04-14 183 views
1

在问一个问题之前,先问你一个问题。无论如何,我已经得到了批处理文件的代码的一部分,我想知道为什么,每次输入“1”或“2”,它会说语法不正确&然后它会退出。我整晚搜索了它,但找不到任何东西。我用不同的版本替换了if语句,但它们都不能用于xD。我想知道如果你们能帮助我,我想事先感谢你,以免我会忘记。如何用if语句和输入在批处理文件中调用另一批处理文件?

这是代码。

set /p ch=[]: 
if %ch%==1(
    goto login 
) 
if %ch%==2(
    goto register 
) 
:login 
call lxer.bat 
exit 
:register 
call rxer.bat 
exit 

所以,问题是:

它不会已经调用批处理文件lxer.bat/rxer.bat (这些批处理文件是在正确的目录/在同一个文件夹) 它说了一些关于语法,然后它会直接关闭。

回答

0

必须有在if否则cmd(到字符串要比较的(之前的空间。结果是if string == stringcontaining(cmd说得好,如果那,那又怎么样?

确保字符串存在也是一个想法。如果您只是按输入以回应set p那么变量保持不变,所以如果它尚未设置,cmd看到if == string...并会反对。

通常的方法是if "%ch%"=="2" (

+0

该死,我刚按下左右回车当我看到'1新的答案,这POST'并不知我知道这是你的。 – Bloodied

+0

哦,上帝,我怎么会错过?! xD –

+0

非常感谢! lmfaooooo即时在笑我自己 –

0

我喜欢这种方式把dynamic menuhttp://www.dostips.com

说明:

这个简单的菜单框架解析本身的某些批次标签 签名并将它们列为菜单项。自解析功能使 菜单通用。可以通过添加新的功能块来插入新菜单项,而无需更改菜单基础结构。

@echo off 
Title Example of a dynamic Menu 
:menuLOOP 
Color 0A & Mode con cols=55 lines=10 
echo(
echo( ====================Menu==================== 
echo(
for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do (
echo  %%A %%B) 
echo(
echo( ============================================ 
set choice= 
echo(& set /p choice=Make a choice or hit ENTER to quit: || GOTO :EOF 
echo(& call :menu_[%choice%] 
GOTO:menuLOOP 
::************************* 
:menu_[1] login 
cls 
echo(
echo login & pause 
call lxer.bat 
exit /b 
::************************* 
:menu_[2] register 
cls 
echo(
echo register & pause 
call rxer.bat 
exit /b 
::************************* 

您还可以看看this example with a dynamic menu : DJ Batch Music Player

+0

哇!我最好也试试这个。谢谢! –

相关问题