在批处理脚本中取消列出目录名称

在批处理脚本中取消列出目录名称

我正在使用以下命令列出除不需要的文件夹之外的所有文件(具有绝对路径)。

这只是一个小问题,我不想只列出下面前三个条目中所列出的目录名称。

C:\Listings\D1
C:\Listings\D2
C:\Listings\D3

我该怎么做?谢谢

dir /S /B * | findstr /v /i UD

C:\Listings>dir /S /B * | findstr /v /i UD
C:\Listings\D1
C:\Listings\D2
C:\Listings\D3
C:\Listings\D1\d1_file.txt.txt
C:\Listings\D2\d2_file.txt.txt
C:\Listings\D3\d3_file.txt.txt

答案1

/A-D在命令中添加开关:

dir /A-D /S /B * | findstr /v /i UD

此开关排除目录(具有目录属性)。

答案2

还有电源外壳等效...
详细:

Get-ChildItem -File -Recurse -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName

别名

gci -af -r -ea silent | select -exp FullName

以上立即开始输出结果,方便进一步的管道处理。

替代结构:

( gci -af -r -ea silent ).FullName

...在选择 FullName 属性并返回结果之前完成递归查询。

获取 ChildItem/gci

答案3

一种替代方案:

where /r . *

其中仅列出文件并带有完整路径:


相关内容