如何跳过批处理文件中发现的错误并继续执行命令行?

时间:2019-04-15 23:21:12

标签: batch-file cmd windows-console

我正在使用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错误并继续扫描服务器?

谢谢。

PZR是我PC中某些映射的网络驱动器。

1 个答案:

答案 0 :(得分:0)

(FOR /R "P:\" %G IN (.) DO @PUSHD %G && @DIR /Q & @POPD) >> "C:\Users\aperea01\eng.TXT"

这将遍历 P:\ 中的所有子文件夹,并且只有在命令能够DIR /Q(更改目录)到其中时才运行 PUSHD(具有所有者的标准列表)。所有输出都重定向到 eng.TXT。希望这能避免您遇到的 Access denied 问题,尽管我无法复制您描述的场景。