1
我想更改INI文件中的某些值。不幸的是,我有兩個不同部分的鍵,這兩個部分的名稱相同,但需要不同的值。我的代碼使用PsIni
的Get-IniContent
功能。Powershell INI編輯
實例INI文件:
[PosScreen]
BitmapFile=C:\Temp\Random.bmp
Bitmap=1
[ControlScreen]
BitmapFile=C:\Temp\Random.bmp
Bitmap=1
我需要上述更改爲以下幾點:
[PosScreen]
BitmapFile=C:\Temp\FileC.bmp
Bitmap=1
[ControlScreen]
BitmapFile=C:\Temp\FileD.bmp
Bitmap=1
我使用的PowerShell代碼似乎工作,但它的變化的每一個值「文件d」。它明顯地解析了兩次,並且每個部分的名字都是相同的。
$NewFileC = "C:\Temp\FileC.bmp"
$NewFileD = "C:\Temp\FileD.bmp"
$POSIniContent = Get-IniContent "C:\scripts\Update-EnablerImage\WINSUITE.INI"
$BOIniContent = Get-IniContent "C:\scripts\Update-EnablerImage\WINSUITE.INI"
If ($POSIniContent["PosScreen"]["BitmapFile"] -ne $NewFileC) {
Get-Content "C:\scripts\Update-EnablerImage\WINSUITE.INI" |
ForEach-Object {$_ -replace "BitmapFile=.+" , "BitmapFile=$NewFileC" } |
Set-Content "C:\scripts\Update-EnablerImage\WINSUITE.INI"
}
If ($BOIniContent["ControlScreen"]["BitmapFile"] -ne $NewFileD) {
Get-Content "C:\scripts\Update-EnablerImage\WINSUITE.INI" |
ForEach-Object {$_ -replace "BitmapFile=.+" , "BitmapFile=$NewFileD" } |
Set-Content "C:\scripts\Update-EnablerImage\WINSUITE.INI"
}
我的掙扎是如何獨立地改變每一個。我是一個腳本新手,所以呼籲一些幫助。嘗試使用條件邏輯(例如ForEach $line in $INIFile
),但沒有運氣。
完美。非常感謝。我以爲我在想整個事情! –