batch-file - 修改现有注册表项值的一部分
问题描述
我想更改注册表中的值。
在批处理文件中,我有:
ECHO Changes in reg
reg import "C:\modifySip.reg"
在modifySip.reg
我有:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Lync]
"ServerSipUri"="User.Test@domainA.com"
它有效!
但是,现在我想使用现有注册表值的一部分并对其进行修改。
我需要保留User.Test@
URI 的domainA.com
一部分,并用domainB.com
.
解决方案
鉴于您提供的信息,并且正如我在评论中提到的,没有必要.reg
为此任务使用文件。我将提供以下批处理文件解决方案:
@Echo Off
SetLocal EnableExtensions
Set "NewDomain=domainb.com"
Set "RegKey=HKCU\Software\Microsoft\Office\16.0\Lync"
Set "ValName=ServerSipUri"
For /F "EOL=H Tokens=2*" %%G In ('""%__AppDir__%reg.exe" Query "%RegKey%" /V "%ValName%" 2> NUL"'
) Do For /F "Tokens=1* Delims=@" %%I In ("%%H") Do "%__AppDir__%reg.exe" Add "%RegKey%" /V "%ValName%" /D "%%I@%NewDomain%" /F 1> NUL
只需将行修改4
为您需要的实际域字符串。