2014-02-05 53 views
0

我試圖做一點連接四個遊戲,每當我進入沒有輸入任何東西進入控制檯時它說goto在這個時候是意外的所有我想要它回到:X現在如果沒有用戶輸入。任何幫助將被讚賞。轉到在這個時候是意想不到的?

:X 
cls 
echo -------------- 
echo Connect Four X 
echo -------------- 
echo. 
echo CHOOSE A COLUMN 
echo. 
echo. 
echo 1 2 3 4 5 6 7 
echo. 
echo (%a6%) (%b6%) (%c6%) (%d6%) (%e6%) (%f6%) (%g6%) 
echo. 
echo (%a5%) (%b5%) (%c5%) (%d5%) (%e5%) (%f5%) (%g5%) 
echo. 
echo (%a4%) (%b4%) (%c4%) (%d4%) (%e4%) (%f4%) (%g4%) 
echo. 
echo (%a3%) (%b3%) (%c3%) (%d3%) (%e3%) (%f3%) (%g3%) 
echo. 
echo (%a2%) (%b2%) (%c2%) (%d2%) (%e2%) (%f2%) (%g2%) 
echo. 
echo (%a1%) (%b1%) (%c1%) (%d1%) (%e1%) (%f1%) (%g1%) 
echo. 
echo --------------------------- 
echo. 
echo. 
set /p xchoice=: 
if %xchoice% == 1 goto xcheck1 
if %xchoice% == 2 goto xcheck2 
if %xchoice% == 3 goto xcheck3 
if %xchoice% == 4 goto xcheck4 
if %xchoice% == 5 goto xcheck5 
if %xchoice% == 6 goto xcheck6 
if %xchoice% == 7 goto xcheck7 
goto X 

回答

0

如果你正在進入一個set/p一個字符串,那麼就沒有說,輸入的數據不包含空間。解決方法是"enclose the strings on both sides of the comparison operator in quotes" - 也就是雙引號'not single quotes'

IF語法是if string1 operator string2 action。

你需要

if "%possiblyemptyvariable%"=="1" goto ... 
+0

有可能仍然是問題,如果值已經包含報價,毒字符和/或空格一起。唯一絕對安全的比較方法是使用延遲擴展。如果您使用擴展進行搜索和替換或子字符串操作,則封閉引號仍應與延遲擴展一起使用。 – dbenham