仅批量回放具有特定正则表达式的文件夹?

时间:2013-07-05 20:56:33

标签: regex batch-file

我试图仅在当前路径中使用某种类型的正则表达式(以“JobResults”开头)回显所有子文件夹/目录,但屏幕上没有显示任何内容。

For /d %i in ("C:\Interns 2013 Projs\JobResults*") DO echo %~ni 

如果我用/ r替换/ d,只有文件不是目录回显到屏幕

3 个答案:

答案 0 :(得分:1)

试试这个:

For /d /r "C:\Interns 2013 Projs" %i in (JobResults*) DO echo %~ni 

答案 1 :(得分:0)

如果您要查找名称以JobResults开头的所有子文件夹,例如

C:\Interns 2013 Projs\JobResults 23
C:\Interns 2013 Projs\bar\JobResults_42

这样的事情应该有效:

@echo off

for /r %%d in (.) do (
  echo %%~nd | findstr /r "^JobResults" >nul 2>&1 && echo %%~fd
)

如果您要在名称以JobResults开头的工作目录中查找这些文件夹的所有子文件夹,例如

C:\Interns 2013 Projs\JobResults 23
C:\Interns 2013 Projs\JobResults 23\foo
C:\Interns 2013 Projs\JobResults 23\foo\bar

这样的事情应该有效:

@echo off

for /f "tokens=*" %%d in ('dir /b /a:d /s') do (
  echo %%~d | findstr /r "^%CD:\=\\%\\JobResults" && echo %%~d
)

答案 2 :(得分:0)

如果您希望仅将结果回显到屏幕,则会执行以下操作:

dir /s /ad /b "C:\Interns 2013 Projs\JobResults*"