通过将模式存储在变量中来选择字符串。 (这样可以动态更改模式)

时间:2014-07-17 20:24:47

标签: powershell powershell-v2.0

我正在尝试搜索文件并检索包含特定短语的行。我正在尝试以下代码但它没有检索任何内容。变量$ searchIP中没有任何内容。

$pattern = "query for " + $customer_Id
$pattern = $pattern.ToString()
$searchIP =  Select-String -Encoding UNICODE -Path .\test_file.log -Pattern $pattern

我匹配的模式随客户ID而变化,因此我无法对其进行硬编码。我试图用一个包含我需要搜索的字符串的变量($ pattern)来搜索文件。

因此,每次更新客户ID时,我都会收到包含更新的customer_ID的行。

这很好但我无法动态更改customer_ID。

$searchIP =  Select-String -Encoding UNICODE -Path .\test_file.log -Pattern "query for 101231019" 

我试过这个,但是它出错了。

Select-String -Encoding UNICODE -Path .\test_file.log -Pattern "query for " + $customer_Id

我哪里错了?是否可以使用变量选择字符串?

1 个答案:

答案 0 :(得分:0)

将前两行更改为:

$pattern = "query for $customer_Id"

然后你的最后一行就是:

Select-String -Encoding UNICODE -Path .\test_file.log -Pattern $pattern