【发布时间】:2017-02-22 12:20:38
【问题描述】:
我知道这可能很简单,甚至不可能,但我的 Powershell 知识是新手,我的任务是创建一个搜索我们的文件服务器以查找其中包含“NDA”的文件名。但是,我创建的脚本返回所有嵌入了 NDA 和 NDA 的文件名(即,它返回文件名,如星期一、日历、基本等)。想要这些结果的人希望尽可能过滤掉那些嵌入的单词结果。
Get-ChildItem -path u:\ -include *nda* -exclude *.tmp,*.lnk,*.xls,*.url,*.gif,*.bmp,*.msg,*.xlsx,*.kfg,*.sol,*.ics,*.srs,*.rtf,*.asd,*.dotx,*.xml -file -recurse
我也试过这个,但它也会返回所有结果。
Get-ChildItem u:\ -recurse -include *nda | Where-Object {$_.Name -match "nda"}
我尝试添加通配符 [ ] 以尝试消除多余的结果,但我没有运气。非常感谢任何帮助。
【问题讨论】:
-
-match也会找到嵌入的 nda。请改用where BaseName -eq 'NDA'。如果您使用-like,您可以添加通配符,即where BaseName -like "*-NDA",如果您想要的名称包含某些模式。BaseName是没有扩展名的文件名。 -
您想要返回的所有文件名的格式是否相同,例如“filename-NDA.ext”?
-
寻找文件名的团队正在尝试进行审核。因此,他们正在寻找包含或嵌入某些关键字的任何内容,但我需要排除误报。让它变得更加困难。
标签: powershell