如何监视特定的命令行错误(Windows)?

时间:2013-10-31 16:09:02

标签: batch-file

我需要一个包含多个驱动器映射语句的批处理文件,如下所示:

@echo off
net use Q: \\serve\share

当驱动器已经连接时,我收到系统错误85.如何监视85错误并采取我自己的行动(就像一个廉价的goto已经连接)?如果它是85以外的任何错误,我想看到显示的消息(或从变量中获取它并显示它......无论如何)。

我已经尝试了一些我发现的样本,但我似乎无法抑制系统错误显示,我无法弄清楚如何专门捕获85错误。如果我能得到如何进行错误抑制,陷印等的示例,我可以制作其余的代码。

谢谢,

2 个答案:

答案 0 :(得分:2)

不是在地图后检查错误,而是在错误之前检查地图

已修改以更正现有地图搜索中的错误

    call :doMap q: "\\server\share"
    ....

:doMap drive share
    rem search for drive map in server
    net use | find /i "%~1" | find /i "%~2" > nul
    if errorlevel 1 (

        rem if not found, test if drive letter is mapped
        rem and remove map if needed
        net use | find /i "%~1" > nul && net use "%~1" /delete >nul

        rem map drive to server share
        net use %~1 "%~2" > nul

    ) 
    goto :eof

答案 1 :(得分:1)

net use Q: \\serve\share 2>&1 | find "85" &&(
  echo error 85
)

...