如何跳过在批处理文件中发现的错误并继续执行命令行?
Posted
技术标签:
【中文标题】如何跳过在批处理文件中发现的错误并继续执行命令行?【英文标题】:How to skip error found in a batch-file and continue executing the command line? 【发布时间】:2019-09-05 23:38:32 【问题描述】:我正在使用 Windows 命令处理器 (cmd.exe) 来扫描服务器中的所有文件。我的目标是拥有一个.txt
文件,其中包含名称文件及其所在位置,(以便更快地搜索)。
这是我的代码:
P:
DIR *.* /P /Q /S > C:\Users\aperea01\eng.TXT
Z:
DIR *.* /P /Q /S > C:\Users\aperea01\CADUsers.TXT
R:
DIR *.* /P /Q /S > C:\Users\aperea01\eng_restricted.TXT
批处理文件实现了它的目标,但如果我找到一个我无权访问的文件夹,批处理文件就会停止工作。它确实会写入并保存最后找到的文件,但无法继续。
有没有办法跳过Access denied
错误并继续扫描服务器?
提前致谢。
P
、Z
和 R
是我电脑中的一些映射网络驱动器。
【问题讨论】:
你不认为这是/p
开关吗?输入dir /?
。
嗨@Noodles,/P
不是根本原因,即使我从批处理文件中删除它,在许多文件之后,当它找到一个私人文件夹(访问受限的个人文件夹) ,代码保存信息并退出 CMD(Windows 命令处理器)。您在 DIR (FOR /R "P:\" %G IN (.) DO @PUSHD %G && @DIR /Q & @POPD) >> "C:\Users\aperea01\eng.TXT"
这将遍历P:\
中的所有子文件夹,并且仅在命令能够将PUSHD
(更改目录)进入其中时才运行DIR /Q
(带有所有者的标准列表)。所有输出都重定向到eng.TXT
。希望这可以防止您遇到Access denied
问题,尽管我无法复制您描述的场景。
【讨论】:
以上是关于如何跳过在批处理文件中发现的错误并继续执行命令行?的主要内容,如果未能解决你的问题,请参考以下文章
使用heidilsql执行sql时,遇到错误,怎么跳过继续执行
如果出现错误,如何获取批处理文件 .bat 继续执行下一条语句
如何跳过重复索引上的错误并继续在 MongoDB 中进一步添加文档(pymongo)