gpt4 book ai didi

batch-file - 使用批处理文件读取包含空格的注册表值

转载 作者:行者123 更新时间:2023-12-04 10:40:06 29 4
gpt4 key购买 nike

我有一个读取注册表值的批处理文件。

但是,我正在阅读的条目包含空格,并且在设置变量时,我似乎只捕获了第一个空格字符之前的所有内容。

set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\My Entry"
set VALUE_NAME=Home

FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
set ValueName=%%A
set ValueType=%%B
set Home=%%C
)

if defined ValueName (
@echo Home = %Home%
) else (
@echo %KEY_NAME%\%VALUE_NAME% not found.
)

主注册表项实际上包含这个字符串:“C:\Program Files (x86)\Dir1\Dir2”,批处理文件只捕获这个:C:\Program

有没有人知道如何解决这个问题?

谢谢

最佳答案

发生此问题是因为字符串包含空格,并且字符串的第二部分(如果有更多空格,可能会有更多部分)被视为另一个标记(在 4、5 等中)要解决此问题,请将行的其余部分传递给%%C 带有这样的星号:

FOR /F "usebackq skip=2 tokens=1,2*" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
set ValueName=%%A
set ValueType=%%B
set Home=%%C
)

星号 ( * ) 表示将行的其余部分传递给下一个变量(包含所有空格)。

关于batch-file - 使用批处理文件读取包含空格的注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281185/

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