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

标签 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错误并继续扫描服务器?

提前致谢。
P , ZR是我 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/

相关文章:

powershell - 列出一个文件夹结构中不在另一个文件夹结构中的文件

windows - Windows程序文件夹中全局可写批处理文件的安全问题

batch-file - 为什么在 if 语句中无法获取延迟扩展变量的子字符串?

c# - Application.exe 不是有效的 Win32 应用程序错误

c# - 使 .NET 控制台应用程序保持事件状态,直到终止序列完成

c# - 如何在 C# 中从控制台读取很长的输入?

windows - 在所有驱动器上安排 chkdsk 将结果输出到文件

linux - 比较二进制文件以导出文本文件并查找自上次导出后哪些二进制文件已更改或下一个

batch-file - 如何使用cmd/批处理文件删除目录中名为x的所有文件夹

java - 使用 ProcessBuilder 启动 CMD