我想从所有目录中获取文件列表。有这样的层次结构:
all_directories/dir_cc
all_directories/dir_dd
all_directories/dir_cc/swt/file{1..n}.txt
all_directories/dir_cc/swd/file{1..n}.txt
all_directories/dir_dd/swt/file{1..n}.txt
all_directories/dir_dd/swd/file{1..n}.txt
我需要以递归方式获取包含swt目录中文件的列表。这就是我想要获得的:
all_directories/dir_cc/swt/file{1..n}.txt
all_directories/dir_dd/swt/file{1..n}.txt
这是一个例子,但我的层次结构要大得多 在linux中我这样做:
find all_directories -regex ".*/dir_.*/swt
在windows批处理中,我怎么能做同样的事情,或者通过迭代来进行迭代? 谢谢。
答案 0 :(得分:0)
dir /a-d /s /b "c:\all_directories" | findstr /i /r /c:"\\dir_[^\\]*\\swt\\."
生成文件的递归列表并过滤以仅获取所需的
用于for
命令
for /f "tokens=*" %%f in (
'dir /a-d /s /b "c:\all_directories" ^| findstr /i /r /c:"\\dir_[^\\]*\\swt\\."'
) do (
echo %%f
)
答案 1 :(得分:0)
这是另一种选择:它假设所有文件{*} .txt文件在*部分都有数字。
dir "all_directories\file{*}.txt" /b /s /a-d|find /i "\swt\file"