まず、私はpowershellにかなり新しい、そして長い時間のlurkerです。私の嫌なフォーマットを許してください。ファイルが存在しない場合は、どの行をファイルに追加するのですか?
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}
}
'!(Select-String -Path $ jsfile -pattern $ newline -SimpleMatch)' select-stringは、デフォルトでregexを使います。あなたの検索文字列に正規表現のメタ文字が含まれています – Matt