我正在使用 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
是我 PC 中的一些映射网络驱动器。
最佳答案
(FOR /R "P:\" %G IN (.) DO @PUSHD %G && @DIR /Q & @POPD) >> "C:\Users\aperea01\eng.TXT"
这将遍历 P:\
中的所有子文件夹并且只运行 DIR /Q
(与所有者的标准列表)如果命令能够PUSHD
(更改目录)进入它。所有输出都重定向到 eng.TXT
.希望这会阻止 Access denied
您遇到的问题,尽管我无法复制您描述的场景。
关于batch-file - 如何跳过批处理文件中发现的错误并继续执行命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55698491/