2015-04-12 117 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