我目前正在创建一个更大的批处理文件的片段,它需要让用户与命令提示符进行交互,但我似乎在IF语句方面遇到了问题。
下面的代码是我一直在尝试的:
:ONE2
cls
echo Free Roam is used like command prompt, but with additional commands.
echo Type FRHELP for a list of additional commands.
:COMMANDLOOP
echo.
set /P TEMPCMD=%CD% :
IF %TEMPCMD% == QUIT (
GOTO END2
) else if %TEMPCMD% == FRHELP (
GOTO COMMANDSLIST
) else (
%TEMPCMD%
GOTO COMMANDLOOP
)
:COMMANDSLIST
echo.
echo FRHELP = Display Free Roam Commands
echo QUIT = Leave your current Free Roam Session
GOTO COMMANDLOOP实际情况是,我可以生成多部分命令(EG: cd ..)而不使用IF语句。但是使用IF语句,它只允许我创建单个部分的命令(EG: dir)。
如果我有上面列出的If语句,它会给出"'..‘was unexpected“错误并退出。
有没有办法通过这些IF语句将我的TEMPCMD变量传递给命令提示符,而不得到这个错误?
发布于 2013-06-15 02:06:49
试试这个,它对我来说没有任何错误:
@echo off &setlocal
:COMMANDLOOP
echo.
set "TEMPCMD=%CD%"
set /P "TEMPCMD=%CD% :"
IF "%TEMPCMD%"=="QUIT" (GOTO END2
) else (
if "%TEMPCMD%"=="FRHELP" (
GOTO COMMANDSLIST
) else (
GOTO COMMANDLOOP
)
)
pause
:COMMANDSLIST
echo.
echo FRHELP = Display Free Roam Commands
echo QUIT = Leave your current Free Roam Session
GOTO COMMANDLOOPhttps://stackoverflow.com/questions/17112390
复制相似问题