Tôi đang làm việc trên tập lệnh PowerShell để sửa đổi các tệp cấu hình. Tôi có file như thế này:Chức năng Powershell để thay thế hoặc thêm dòng trong các tập tin văn bản
#####################################################
# comment about logentrytimeout
#####################################################
Logentrytimeout= 1800
ai sẽ trông như thế này:
#####################################################
# comment about logentrytimeout
#####################################################
Logentrytimeout= 180
disablepostprocessing = 1
segmentstarttimeout = 180
Nếu có một bộ chìa khóa (Logentrytimeout), chỉ cần cập nhật nó với giá trị nhất định. Bỏ qua các nhận xét, trong đó khóa được đề cập (các dòng bắt đầu bằng #). Khóa không phân biệt chữ hoa chữ thường.
Nếu khóa không được đặt (disablepostprocessing và segmentstarttimeout), hãy thêm khóa và giá trị vào tệp. chức năng của tôi cho đến nay đi như thế này:
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"
- regex đúng là gì?
- Làm cách nào để kiểm tra xem có thay thế không?
- Nếu không có thay thế: Làm thế nào tôi có thể nối thêm $ + "=" + $ giá trị vào tệp?