2017-02-09 88 views
0

我需要浏览除了一个(名为“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)?

干杯

回答

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\" 

获取完整列表和过滤它,只检索没有提及到要排除的文件夹中的线

+0

它看起来不错,但如何你会只显示文件(及其路径)? (而不是其他迪尔评论),对不起,我没有问 – juRioqs75

+0

@ juRioqs75,答案更新。 –

相关问题