batch-file - 如何监视特定命令行错误 (Windows)?

标签 batch-file

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

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

当驱动器已连接时,我收到系统错误 85。如何监视 85 错误并采取自己的操作(例如便宜的 goto has_connected)?如果是 85 以外的任何错误,我想查看显示的消息(或从变量中获取它并显示它......无论如何)。

我已经尝试了一些我找到的示例,但我似乎无法抑制系统错误显示,并且我无法弄清楚如何专门捕获 85 错误。如果我能得到如何进行错误抑制、捕获等的示例,我可能可以编写其余的代码。

谢谢

最佳答案

不要在 map 之后检查错误,而是在错误之前检查 map

已编辑以更正现有 map 搜索中的错误

    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

关于batch-file - 如何监视特定命令行错误 (Windows)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711516/

相关文章:

svn - 我可以使用项目的 SVN 修订号设置环境变量吗?

windows - 将设备管理器导出到 txt 文件

batch-file - 计算批处理脚本的执行次数

batch-file - if 循环内的条件与批处理文件

windows - 如何防止 bat 文件提前退出?

windows - 批量替换参数值

batch-file - 如何从 MS DOS 目录列表中排除特定文件名?

windows - 如何在 bat 文件中按位制作?

windows - 如何使用 Windows 命令行环境查找和替换文件中的文本?

string - 在批处理文件中最后一个分隔符实例之后提取字符串