首先,我对powershell很新,而且很长一段时间潜伏着。请原谅我恶心的格式。
我试图为Firefox的.js文件写一些设置。我已经弄清楚了第一部分,但我似乎无法获得PowerShell来准确检查文件中是否已存在该字符串,然后什么都不做。每次运行时,如果文件存在,那么它只是将相同的信息附加到文件。
$newline='pref("network.negotiate-auth.trusted-uris", "domain.com");'
$jsfile='C:\Program Files (x86)\Mozilla Firefox\defaults\pref\policies.js'
$jsfiledl='http://someserver/repo/windows/policies.js'
If (!(Test-Path $jsfile)) {
(New-Object System.Net.WebClient).DownloadFile($jsfiledl, 'C:\Program Files (x86)\Mozilla Firefox\defaults\pref\policies.js')
} Else {
If (!(Select-String -Path $jsfile -pattern $newline)){Add-Content $jsfile $newline}
}
答案 0 :(得分:2)
您只需将-SimpleMatch
开关添加到Select-String
。
这与正则表达式不匹配的原因是由括号引起的。括号表示在正则表达式中进行分组,并且不与文件中的字面括号匹配,从而导致整体无法匹配。