批处理IF NOT EXIST多文件判断出错求助:已放文件仍提示错误
批处理IF NOT EXIST判断图片文件的问题分析与修复
你的脚本报错主要有两个核心问题:
1. 路径格式错误
你写的*"%input%*.jpg"是错误的路径写法,批处理中指定目录下所有某类型文件的正确格式是"%input%\*.jpg":
- 用引号包裹整个路径避免空格问题
- 目录变量
%input%后要加反斜杠\,明确指向目录下的文件 - 通配符
*放在扩展名前,代表任意文件名
2. 逻辑判断语法错误
批处理的IF语句不支持直接用&&连接两个EXIST条件。你需要判断的是目录下既没有jpg也没有png文件才触发错误,正确的写法是嵌套IF NOT EXIST:
修正后的代码
IF NOT EXIST "%input%\*.jpg" ( IF NOT EXIST "%input%\*.png" ( ECHO.========================================= ECHO.= ERROR : PUT UR IMAGE FILE TO /input = ECHO.========================================= pause goto MENU ) ) REM 走到这里说明存在jpg或png文件,执行后续逻辑 ECHO.========================================= ECHO.= Listing file = ECHO.========================================= cd "%input%" dir /B ECHO.========================================= ECHO.= listing done = ECHO.========================================= timeout /T 2 > nul cls
或者也可以用IF NOT EXIST ... IF NOT EXIST ...的单行写法:
IF NOT EXIST "%input%\*.jpg" IF NOT EXIST "%input%\*.png" ( ECHO.========================================= ECHO.= ERROR : PUT UR IMAGE FILE TO /input = ECHO.========================================= pause goto MENU ) ELSE ( ECHO.========================================= ECHO.= Listing file = ECHO.========================================= cd "%input%" dir /B ECHO.========================================= ECHO.= listing done = ECHO.========================================= timeout /T 2 > nul cls )
另外注意:cd %input%最好改成cd "%input%",避免目录路径包含空格时出错;timeout /T 2 \> nul里的反斜杠是多余的,改成timeout /T 2 > nul即可。
内容的提问来源于stack exchange,提问作者cutefishaep
相关产品推荐
相关产品推荐

