2016-07-06 110 views
-4

我在這裏看到了另一個類似於我的問題。答案是使用&符號在一行中運行這兩個命令。但是,這是兩個不同的命令,我試圖使用的兩個命令是gotoecho如何使用批量同時執行2個命令

當我嘗試把&簽到後我想要echo,它認爲我想要echo&籤。所以然後我試着在goto EXAMPLETEXT之後加上&這個符號,它相信我想去我批處理文件中的一個地方,叫做EXAMPLETEXT &。命令不知道什麼時候從他們的命令偏離到下一個命令。

如果你想知道我用這什麼情況下爲什麼我需要使用這個,原因是是,我問一個問題,set /p answer=Are you ready to begin?:然後我有,if %answer% == Ready goto beginif %answer == Not ready goto NOTREADYif %answer% == yes goto begin等。

然後在所有指定的答案選項可接受的末尾,我想把if not defined %answer% echo Not an acceptable answer & goto READYTOBEGIN?(發送回問題,以便他們可以重新回答。)但當然,由於指定的原因,將不會工作我。

+1

爲什麼它絕對有在一條線上?如果使用圓括號,則可以在代碼塊中同時使用這兩個命令,並且不需要擔心'&s。 – SomethingDark

回答

0

隨着if exist使用VARIABLENAME,不是變量本身(不%

你行

if not defined %answer% echo Not an acceptable answer & goto READYTOBEGIN? 

解析(因爲%answer%爲空)爲:

if not defined echo Not an acceptable answer & goto READYTOBEGIN? 

echo是也沒有定義(可能),所以要執行的命令是Not - 這lea ds發生錯誤「未找到命令」。
如果它定義,沒有錯誤,但這並沒有太大的好處。讓我們假設,用戶輸入hello,則該行被解析爲:

if not defined hello echo Not an acceptable answer & goto READYTOBEGIN? 

變量hello可能是沒有定義,但它可能是 - 讓你擁有一個不可預知的行爲。

你行的正確語法是:

if not defined answer echo Not an acceptable answer & goto READYTOBEGIN? 

你做什麼,當用戶例如qwertzui進入? answer被定義,所以echogoto被忽略。更好地省略了最後if completeley和替換剛剛行:

echo Not an acceptable answer & goto READYTOBEGIN? 

所以它觸發,如果answer要麼沒有定義或沒有得到與以前if小號逮住