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 脚本,我不知道整个字符串,. 之间的数字""
我只知道,找到字符串变量: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' 开头的 a 行,后跟任意位数,然后是一个点、任意位数、一个点、任意位数,并以 '"' 结尾。找到后,该行将替换为 '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 回答
0

您使用键:Ctrl + H

More information: https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/keyboard-shortcuts-for-the-windows-powershell-ise?view=powershell-7

于 2020-10-09T04:21:30.743 回答