问题出在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 ]