这看起来似乎很简单,但是无论出于什么原因,它都不起作用:
#Verifies that the firefox proxy setting have been applied
#locate Prefsjs file
$PrefsFiles = Get-Item -Path ($env:SystemDrive+"\Users\*\AppData\Roaming\Mozilla\Firefox\Profiles\*\prefs.js")
#read in Prefsjs
$Prefsjs = (Get-Content $PrefsFiles)
#Block to compare
$Update= @"
user_pref("network.proxy.http", "0.0.0.0");
user_pref("network.proxy.http_port", 80);
"@
($Prefsjs -contains $Update)
最后一行应该返回true,因为文本实际上确实存在于$ Prefsjs中...有什么想法吗?
最佳答案
它不会匹配,因为您正在将多行字符串与单行字符串数组进行比较。
您需要比较类似的对象,这意味着$ Prefsjs也需要是一个单行的字符串。最简单的方法是将-Raw开关添加到Get-Content
中:
#read in Prefsjs
$Prefsjs = (Get-Content $PrefsFiles -Raw)
但是现在$ Prefsjs不再是数组,因此您不能使用
-Contains
。现在它只是一个字符串,因此您可以使用字符串contains()
方法完成相同的操作:$Prefsjs.contains($Update)