【问题标题】:how to capture standard erros like "The system cannot find the drive specified." or "The system cannot find the path specified." in a batch script如何捕获标准错误,例如“系统找不到指定的驱动器”。或“系统找不到指定的路径。”在批处理脚本中
【发布时间】:2025-11-28 08:10:01
【问题描述】:

我正在尝试开发一个 Windows 批处理程序,如果出现 The system cannot find the drive specified.The system cannot find the path specified. 之类的错误,则可以检查“fld_chk.out”文件并进行循环。

但是 cd A:\rr\Br>fld_chk.out 没有捕获这些错误。

如何捕捉标准错误?

我的代码是这样的:-

cd A:\rr\Br>fld_chk.out
cd B:\yy\dd>>fld_chk.out
find /c "The system cannot find" *.out>fld_count_check_1.out
find /c "0" fld_count_check_1.out>fld_count_check_2.out
FOR /F "TOKENS=1* DELIMS=:" %%B IN (fld_count_check_2.out) DO SET b=%%C
set _count=%b%
IF %_count% EQU 2 goto Success
IF not %_count% EQU 2 goto notSuccess
:Success
echo folder found
:notSuccess
echo folder not found

提前致谢 斯里

【问题讨论】:

    标签: batch-file standard-error


    【解决方案1】:

    执行此操作的方法是在执行cd 命令后检查 %ERRORLEVEL% 值:

    cd A:\rr\Br 2> NUL
    if %errorlevel% equ 0 (
       echo folder found
    ) else (
       echo folder not found
    )
    

    如果值为 0,CD 被正确执行并且当前目录被改变;否则 (errorlevel==1) 驱动器或目录不存在。

    2> NUL部分是为了避免错误信息出现在屏幕上。

    【讨论】:

      最近更新 更多