问题出在else分句的%INPUTFILE%上面,谨记批处理的%%这些变量是会在整个命令执行前就进行替换,之后才执行(开启变量延迟后的!!变量则不同);
而当提示输入时你按了回车,%INPUTFILE%为空,系统执行时变成了
if /i not exist (
这样就出现语法错误了,在两旁加上双引号之类的就可以了;
另外if exist可以不用加/i参数
echo Input a file:
set/p INPUTFILE=
if /i "%INPUTFILE%"=="" (
echo 111111111111
set INPUTFILE=Document.txt
goto :END
) else (
echo 222222222222222
if not exist "%INPUTFILE%" (
echo 333333333333
set INPUTFILE=Document.txt
goto :END
)
)
:BEGIN
echo #################
pause
goto :EOF
:END
set INPUTFILE=
echo @@@@@@@@@@@@@@@@@@
pause
Last edited by dikex on 2007-11-2 at 10:09 PM ]