首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell select-string因转义序列而失败

Powershell select-string因转义序列而失败
EN

Stack Overflow用户
提问于 2011-12-20 17:34:27
回答 2查看 18.9K关注 0票数 1

我有一个包含以下内容的文件

代码语言:javascript
复制
change sets:
  promotion level: INITIAL
  depends on: 
    GEESF_R2.1.0.9.5179@\My_PVOB (MES@\My_PVOB)
    My_2.1.0.13.4875@\My_PVOB (Notification@\My_PVOB)
    MyComponents_8_8_2011.6859@\My_PVOB (SQLReporting@\My_PVOB)
    My_2.1.0.13.7098@\My_PVOB (Support@\My_PVOB)

我想阅读有模式@\My_PVOB的内容)

所以我写了这样的select-string选项。

代码语言:javascript
复制
Select-string -pattern "@\My_PVOB)" -path "C:\Baselines.txt"

但是我得到了下面的问题

代码语言:javascript
复制
parsing "@\My_PVOB)" - Unrecognized escape sequence \M.

即使将模式更改为

代码语言:javascript
复制
Select-string -pattern "@\\My_PVOB)" -path "c:\Baselines.txt"

我收到以下错误

代码语言:javascript
复制
 "@\\My_PVOB)" - Too many )'s.

你知道怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-20 18:25:41

圆括号是一个特殊字符,因此您应该对其进行转义:

代码语言:javascript
复制
Select-string -pattern "@\\My_PVOB\)" -path "c:\Baselines.txt"
票数 2
EN

Stack Overflow用户

发布于 2011-12-20 21:47:53

您可以使用Escape方法将元字符替换为它们的转义代码:

代码语言:javascript
复制
PS> $pattern = [regex]::Escape('@\My_PVOB)')
PS> $pattern
@\\My_PVOB\)

PS> Select-String -Path c:\Baselines.txt -Pattern $pattern 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8573357

复制
相关文章

相似问题

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