我想从一些文本文件中提取一些字符串。在对这些文件进行一些研究之后,我发现了一些字符串出现在文本文件中的模式。
我在谷歌搜索的帮助下编写了一个简短的PowerShell脚本。此脚本接收两个参数(文本文件路径和提取关键字),并操作从文本文件中提取字符串。
作为发现&从文件$tpath\temp.txt
中提取目标字符串,此脚本将其保存到另一个文件$tpath\tmpVI.txt
。
Set-PSDebug -Trace 2 -step
$txtpath=$args[0]
$exkey=$args[1]
$tfile=gc "$tpath\temp.txt"
$savextracted="$tpath\tmpVI.txt"
$tfile -replace '&', '&' -replace '^.*$exkey', '' -replace '\s.*$', '' -replace '\\.*$','' | out-file "$savextracted" -encoding ascii
但直到现在,提取的&保存的结果是错误的,从不想要字符串。
通过PS调试,似乎最后一行中的正则表达式会产生麻烦,变量$exkey
会替换引号。但我不知道如何解决这个问题。我该怎么办?
答案 0 :(得分:1)
如果您希望捕获包含匹配项的行,请参阅以下解决此问题的代码段:
Function Get-Matches
{
Param(
[Parameter(Mandatory,Position=0)]
[String] $Path,
[Parameter(Mandatory,Position=1)]
[String] $Regex
)
@(Get-Content -Path $Path) -match $Regex
}