我正在修改配置文件的PowerShell腳本。我有這樣的文件:PowerShell函數替換或添加文本文件中的行
#####################################################
# comment about logentrytimeout
#####################################################
Logentrytimeout= 1800
誰應該是這樣的:
#####################################################
# comment about logentrytimeout
#####################################################
Logentrytimeout= 180
disablepostprocessing = 1
segmentstarttimeout = 180
如果有一個按鍵(Logentrytimeout),只需將其更新到給定值。忽略註釋,提到關鍵字(以#開頭的行)。密鑰不區分大小寫。
如果未設置密鑰(disablepostprocessing和segmentstarttimeout),請將密鑰和值附加到文件。我的功能到目前爲止是這樣的:
function setConfig($file, $key, $value)
{
(Get-Content $file) |
Foreach-Object {$_ -replace "^"+$key+".=.+$", $key + " = " + $value } |
Set-Content $file
}
setConfig divider.conf "Logentrytimeout" "180"
setConfig divider.conf "disablepostprocessing" "1"
setConfig divider.conf "segmentstarttimeout" "180"
- 什麼是正確的正則表達式?
- 如何檢查是否有替換?
- 如果沒有替換:如何將$ key +「=」+ $ value附加到文件中?