2016-04-14 179 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

哇!我最好也試試這個。謝謝! –

相關問題