2012-07-16 60 views
1

我的文本文件看起來是這樣的替換:查找並在PowerShell中

------------------- 
Set PRGVER="V1.0.12" 
Set PRGDIR=C:\PRGSTD\oif_mes\OIFplus 
Set PRGEXE=OIFplus.bat 
Set PRGTXT=OIFplus 

echo %PRGTXT%, %PRGVER% 
start "%PRGTXT%" /D%PRGDIR%\%PRGVER%\ %PRGDIR%\%PRGVER%\%PRGEXE% 
---------------------- 

我wan't做什麼,編輯這個文件,只改變Set PRGVER="V1.0.12"到一個新的號碼,這樣Set PRGVER=V1.0.13"
什麼時候啓動PS腳本,我不知道整個字符串,""之間的數字。
我只知道,找到字符串變量:Set PRGVER=""

我該如何更換""之間的第一個值?

回答

2

像這樣的東西;

$srt = <your text> 
$r = $str -replace "PRGVER=`".*`"", "PRGVER=`"your_replace`"" 
0

下面應該這樣做。它找到一行以'Set PRGVER ='V'開頭,後面跟隨任意數字,然後是一個點,任意數字,一個點,任意數字,以''結尾。找到該行後,將其替換爲「Set PRGVER =」V1.0.13「」,並將結果保存迴文件。

(Get-Content file.txt) -replace '^Set PRGVER="V\d+\.\d+.\d+"$','Set PRGVER="V1.0.13"' | Out-File file.txt 
0

繼辣妹將取代PRGVER值:

$newValue = "v123.456.789" 
gc D:\temp\text | % { $_ -ireplace '(Set PRGVER=)\"([^"]*)\"', ('$1"' + $newValue + '"') };