1

私のテキストファイルは次のようになります。

-------------------
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%
----------------------

私がやりたくないことは、このファイルを編集して、このSet PRGVER="V1.0.12"ように新しい番号に変更するだけSet PRGVER=V1.0.13"です。
PS Script を開始すると、文字列全体、 の間の数字がわかりません""
私が知っているのは、文字列変数を見つけることだけです: Set PRGVER="".

間の最初の値だけを置き換えるにはどうすればよい""ですか?

4

4 に答える 4

2

このようなもの;

$srt = <your text>
$r = $str -replace "PRGVER=`".*`"", "PRGVER=`"your_replace`""
于 2012-07-16T11:36:50.720 に答える
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
于 2012-07-16T11:31:28.867 に答える
0

次の PoSH はPRGVER値を置き換えます。

$newValue = "v123.456.789"
gc D:\temp\text | % { $_ -ireplace '(Set PRGVER=)\"([^"]*)\"', ('$1"' + $newValue + '"') };
于 2012-07-16T11:34:46.913 に答える