首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在powershell搜索中未获得预期结果

在powershell搜索中未获得预期结果
EN

Stack Overflow用户
提问于 2018-07-17 02:25:59
回答 1查看 48关注 0票数 1

我正在尝试查看路径中的所有文件,包括网络共享上的所有子文件夹。我要在文件中查找特定的字符串。字符串在$searchPattern中设置,起始目录在$path下。

我知道至少有一个结果是它应该找到的,但它没有返回任何结果。搜索字符串必须包含换行符,所以我将其包含在变量中。我在寻求帮助,为什么我可能得不到我想要的东西?我对PS1脚本编程比较陌生。

不管它有什么价值,我认为它与换行符有关。当我从searchPattern变量中删除`n时,我确实得到了结果...但我想要完成的是找到没有打印机设置的任何记录,下面提供了一个示例。

谢谢!

代码语言:javascript
复制
$path = '\\printershare\printers\'
$searchPattern = 'label_printer=`n' 
# note the newline char at the end of the pattern

Get-ChildItem $path -recurse | Select-String -pattern $searchPattern | group path | select name

包含我正在寻找的内容的示例文件。此文件没有标签打印机设置。

代码语言:javascript
复制
[Printers]
local_printer=printer001
local_pharm_printer=printer001
label_printer=
local_nursing_printer=printer001
hosp_pharm_printer=printer001
hosp_nursing_printer=printer001
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-17 03:44:54

当您在一组类似的文件上使用Select-String时,它实质上是获取每个文件,并将该文件的行拆分为一个数组。然后,它查看每一行并将其与正则表达式模式进行比较。在这种情况下:

代码语言:javascript
复制
^label_printer=$

^表示要查看的字符串的开头。

label_printer=表示查找指定的文字字符串。

$表示要查看的字符串的末尾。

由于Select-String有效地拆分了回车上的文件,因此您正在查看的字符串中没有一个回车与之匹配。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51368011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档