0

我正在尝试使用 PowerShell 做的是在配置文件中搜索带有随机数量的空格或制表符的文本字符串

使用

$mytext = '<add name="MyName"
                dllPath="My.dll"
                className="MyClass" />'
Select-String -Path $myfile -Pattern $mytext

我认为.replace(' ' , '')可能有助于解决仅去掉空格的观点。然后我想,这里有很多比我聪明的人!

提前致谢

纳蒂

4

2 回答 2

0

如果您的空格可以包含换行符,那么我认为您不能使用Select-String. 它似乎逐行检查您的模式,如果您的模式需要跨越线,这将不起作用。在这种情况下,您可以使用Get-Content将整个文件作为单个字符串和-match运算符读取,例如:

Get-Content .\file.txt -Raw | Where {$_ -match '(?s)(name.*?dllPath)'} |
    Foreach {$matches[1]}

请注意,正则表达式singleline模式通过此指令使用或点匹配任何模式(?s)

于 2015-07-28T15:38:32.670 回答
0

谢谢各位指点。

根据你们提供的信息,我现在将 xml 加载到变量中并解析它。

[xml]$myfile = Get-Content "c:\myfile.config"

然后您可以使用它来检查它

IF ($myfile.name -match $matchnametothis) {Write-Host "do something exciting here"}

再次感谢,并希望这对其他人有所帮助。

纳蒂

于 2015-07-30T09:38:29.487 回答