gpt4 book ai didi

batch-file - 如何将 REG 值读入环境变量

转载 作者:行者123 更新时间:2023-12-03 21:19:10 25 4
gpt4 key购买 nike

我正在尝试将 REG 值读入 BAT 文件中的环境变量。例如。,

REG HKLM\SYSTEM\CurrentControlSet\Services\Eventlog/v ImagePath

我可以将 REG 命令的整个输出字符串放入这样的环境变量中:

FOR /F "usebackq delims==" %%a in (`REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog" /v ImagePath`) DO set ImagePath=%%a

但是,这会将环境变量设置为整行,即
ImagePath   REG_EXPAND_SZ   C:\Windows\system32\services.exe

我希望环境变量仅包含路径部分,即
C:\Windows\system32\services.exe

感谢您提供任何提示。

最佳答案

for /f "tokens=2*" %%A in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog" /v ImagePath') DO set ImagePath=%%B

默认分隔符是空格和制表符;没有必要改变它。 TOKENS=2* 将第二个标记存储在 %%A 中,并将行的其余部分存储在 %%B 中。

关于您的原始代码 - 在您的情况下使用 USBACKQ 没有任何好处。此外,如果您的代码包含 =,您的代码将不会保留整行。因为你用它作为分隔符。

回复评论
如果您可以依赖路径不包含任何空格的事实,那么您可以简单地使用“TOKENS=3”并保存 %%A。但我不会相信。相反,我会使用
for /f "tokens=2*" %%A in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog" /v ImagePath') DO (
for %%F in (%%B) do (
set ImagePath=%%F
goto :break
)
)
:break

关于batch-file - 如何将 REG 值读入环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com