2015-04-12 113 views
0

我正在寫一個批處理代碼。我想接受來自用戶的一個字符,如果是真的,則應該執行一組語句,否則應該執行另一組語句。如何在批處理編程中使用if-else語句?

我試圖做到這一點:

set /p aj= 

if %aj%==y 
    ( 
     set of commands... 
    ) 
else (
    another set of commands... 
    ) 

但我無法獲得完美的輸出我應該得到。請幫忙。

回答

0

如果您的代碼腳本很長,我發現使用goto更容易。嘗試是這樣的:

set /p "aj=: " 
if /i "%aj%"=="y" goto :yes 

:no 
REM another set of commands... 
goto :post 

:yes 
REM set of commands... 
goto :post 

:post 
REM Code after if-statement 

你知道你不需要enabledlayedexpansion,你可以有代碼很長的片約格式化喜中有憂的方式。

1

打開命令提示符窗口,輸入if /?help if,打RETURNENTER和讀取輸出的幫助。

set /p "aj=Continue (y/n)? " 
if /i "%aj%"=="y" ( 
    rem set of commands... 
) else (
    rem another set of commands... 
) 

(必須在同一行if命令。 ) else (也必須在同一行上。

+0

ty我累了,因爲你建議,但它仍然無法正常工作。 'code' set/p「aj = Continue(y/n)?」 if/i「aj」==「y」(file1.bat)else(file2.bat) – ajboss

+0

您已經嘗試過張貼複製到存儲爲ASCII/ANSI/OEM文件的文本文件中?這是不可能的,因爲這個小代碼肯定有效。也許你將文件保存爲帶或不帶BOM(字節順序標記)的Unicode文件而不是ASCII文件。或者你增加了一些不起作用的代碼。 – Mofi