我的文本文件如下所示:
-------------------
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脚本,我不知道整个字符串,""
之间的数字
我只知道,找到字符串变量:Set PRGVER=""
。
如何只替换""
之间的第一个值?
答案 0 :(得分:2)
像这样;
$srt = <your text>
$r = $str -replace "PRGVER=`".*`"", "PRGVER=`"your_replace`""
答案 1 :(得分: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
答案 2 :(得分:0)
以下PoSH将取代PRGVER
值:
$newValue = "v123.456.789"
gc D:\temp\text | % { $_ -ireplace '(Set PRGVER=)\"([^"]*)\"', ('$1"' + $newValue + '"') };
答案 3 :(得分:0)