我需要浏览除了一个(名为“FORBIDDEN”)之外的所有目录,并为每个目录打印它们包含的所有文件。
所以我写了一个像这样的批处理脚本:
@echo off
for /f "tokens=*" %%G in ('dir /b /s /a:d %cd%') do ^
if %%G NEQ C:\Users\ME\FORBIDDEN (dir /a-d %%G)
但是部分(dir /a-d %%G)
并不好,因为我收到一些错误,说找不到文件。
那么,对于循环的每一轮,如何列出目录中存在的所有文件(其路径在%%G
中)?
干杯
答案 0 :(得分:1)
for /d /r %%d in (*) do if not "%%~nxd"=="FORBIDDEN" 2>nul dir /a-d "%%d"
如果每个文件夹不是排除的文件夹,请显示其内容
已修改以适应评论
仅包含具有完整路径的文件
for /d /r %%d in (*) do if not "%%~nxd"=="FORBIDDEN" (
for %%f in ("%%~fd") do echo "%%~ff"
)
另一个选项(也包括当前文件夹中的文件)可以是
dir /a-d /s /b | find /v "\FORBIDDEN\"
获取完整列表并对其进行过滤,以仅检索不引用已排除文件夹的行