CMD-检查正则表达式的文件夹路径
我正在搜索具有特定模式的所有文件夹路径CMD-检查正则表达式的文件夹路径,cmd,Cmd,我正在搜索具有特定模式的所有文件夹路径 Ex. D:\Testfolder>tree Folder PATH listing for volume Working D:. ├───fifth │ ├───first │ ├───second │ └───third │ └───_dn │ ├───first │ └───second ├───first │ ├───first │ └───second │
Ex.
D:\Testfolder>tree
Folder PATH listing for volume Working
D:.
├───fifth
│ ├───first
│ ├───second
│ └───third
│ └───_dn
│ ├───first
│ └───second
├───first
│ ├───first
│ └───second
│ └───_dn
│ ├───first
│ └───second
├───fourth
│ └───first
│ └───_dn
│ ├───first
│ └───second
├───second
│ ├───first
│ ├───second
│ └───third
│ └───_dn
│ └───first
└───third
├───first
└───second
└───_dn
├───first
└───second
如果路径中有单词“\u dn”,则需要将其保存在文件中
预期产出:
D:\Testfolder\fifth\third\_dn
D:\Testfolder\fifth\third\_dn\first
D:\Testfolder\fifth\third\_dn\second
D:\Testfolder\first\second\_dn
D:\Testfolder\first\second\_dn\first
D:\Testfolder\first\second\_dn\second
D:\Testfolder\fourth\first\_dn
D:\Testfolder\fourth\first\_dn\first
D:\Testfolder\fourth\first\_dn\second
D:\Testfolder\second\third\_dn
D:\Testfolder\second\third\_dn\first
D:\Testfolder\third\second\_dn
D:\Testfolder\third\second\_dn\first
D:\Testfolder\third\second\_dn\second
更新1
有人发布了一个几乎正确的答案,然后删除了它。我查不到他的名字来指代他
代码是
(For /R "D:\Testfolder" /D %A In (*_dn*) Do @Echo %A)>"savefile.txt"
返回值为
D:\Testfolder\fifth\third\_dn
D:\Testfolder\first\second\_dn
D:\Testfolder\fourth\first\_dn
D:\Testfolder\second\third\_dn
D:\Testfolder\third\second\_dn
但是,此返回值缺少在_dn\之后有内容的所有路径
Ex.
D:\Testfolder\fifth\third\_dn\first
D:\Testfolder\fifth\third\_dn\second
D:\Testfolder\first\second\_dn\first
D:\Testfolder\first\second\_dn\second
D:\Testfolder\fourth\first\_dn\first
D:\Testfolder\fourth\first\_dn\second
D:\Testfolder\second\third\_dn\first
D:\Testfolder\third\second\_dn\first
D:\Testfolder\third\second\_dn\second
您可以尝试将
Dir
与Find
一起使用,如下所示:
(Dir/B/S/AD“D:\Testfolder”| Find/I“\\u dn\”>“savefile.txt”
试着这样做:
for /f "delims=" %a in ('Dir /ad /s /b D:\Testfolder\ ^| find /I "_dn"') do @echo %a
我看你已经有答案了。如果您想进入PowerShell,可以这样做。总有一天,这可能会被认为更易于维护
Get-ChildItem -Directory -Recurse -Filter '_dn' -ErrorAction SilentlyContinue |
ForEach-Object { $_.FullName } >savefile.txt
gci -di -rec -filt '_dn' -ea si | % { $_.FullName } >savefile.txt
或者,使用别名和最小参数,它可能是神秘的和无法维护的
Get-ChildItem -Directory -Recurse -Filter '_dn' -ErrorAction SilentlyContinue |
ForEach-Object { $_.FullName } >savefile.txt
gci -di -rec -filt '_dn' -ea si | % { $_.FullName } >savefile.txt
您是否在脚本中编写了第一行代码
@echo off
?@muneeb_ahmed我实际上直接在CMDTry中编写了代码,使用命令在目录树中查找和显示文件。“信息:找不到给定模式的文件。”我想这段代码会搜索文件。但我正在寻找目录路径。@blueray啊,好的,所以\u dn
是一个文件夹!这就是为什么不匹配!编辑一下“do@echo%A”而不是“do echo%A”@blueray,我已经编辑了我的答案,很抱歉示例代码太差了!