我想用PowerShell做的是在配置文件中搜索一串随机数量的空白或制表符的文本
使用$mytext = '<add name="MyName"
dllPath="My.dll"
className="MyClass" />'
Select-String -Path $myfile -Pattern $mytext
我认为.replace(' ' , '')
可能有助于将空白去掉。然后我想,这里有很多比我聪明的人!
Thanks in advance
整洁的
如果您的空格可以包含换行符,那么我认为您不能使用Select-String
做到这一点。它似乎是逐行检查你的模式,如果你的模式需要跨越行,这将不起作用。在这种情况下,您可以使用Get-Content
来读取整个文件作为单个字符串和-match
操作符,例如:
Get-Content .file.txt -Raw | Where {$_ -match '(?s)(name.*?dllPath)'} |
Foreach {$matches[1]}
请注意,regex模式使用singleline
或点匹配任何模式通过这个指令(?s)
。
谢谢大家的指点。
从你俩提供的信息,我现在加载xml到一个变量和解析它。
[xml]$myfile = Get-Content "c:myfile.config"
你可以用这个来检查
IF ($myfile.name -match $matchnametothis) {Write-Host "do something exciting here"}
再次感谢,并希望这有助于别人。整洁的