我把它存储在如下所示的文本文件中:
Java 8 Update 111 Java 8 Update 111 (64-bit) Java 8 Update 131 Java 8 Update 151 Java 8 Update 152
我正在使用PowerShell对这些信息做些什么,但在第一个障碍中挣扎。我使用Select-String
匹配模式,它不起作用。
Select-String "\\server\JavaVersions.txt" -Pattern "Java 8 Update 111 (64-bit)"
似乎不起作用,但下面带回两者。
Select-String "\\server\JavaVersions.txt" -Pattern "Java 8 Update 111"
有没有人有任何想法为什么带括号的那个不起作用?是解析问题吗?我真的需要能够在另一个之前获得(64-bit)
并分别采取行动。
你必须逃避特殊的正则表达式字符。在你的案例括号。
Select-String '\\server\JavaVersions.txt' -pattern "Java 8 Update 111 \(64-bit\)"
或者,使用-SimpleMatch
关闭正则表达式匹配:
Select-String '\\server\JavaVersions.txt' -Pattern 'Java 8 Update 111 (64-bit)' -SimpleMatch
作为替代选项,如果您不需要为匹配使用正则表达式,则可以使用-SimpleMatch
参数:
Select-String '\\server\JavaVersions.txt' -SimpleMatch "Java 8 Update 111 (64-bit)"
然后,您不需要执行任何正则表达式转义。