2014-11-06 78 views
0

我已经看到这个常规问题的很多答案,但不知道如何将解决方案合并到我的批处理中...您能帮忙吗?我需要的十进制值此命令/键:特定密钥的注册表值

reg query HKLM\Software\Wow6432Node\TeamViewer\Version9 /v ClientID 

回答

0
for /f "tokens=3" %%a in ('reg query HKLM\Software\Wow6432Node\TeamViewer\Version9 /v 
ClientID') do (set /a num = %%a) 
echo/%num% 

它将0x.....转换为十进制值。 如果您使用的是cmd而不是批处理文件,请不要忘记使用%a而不是%%a

+0

非常感谢您的先生。这很有用。我做了一些改变。这是我的新批次,以满足您的工作答案。 @Echo OFF SET/p name =什么是找到TeamViewer ID的计算机名? ('reg query \\%name%\ HKLM \ Software \ Wow6432Node \ TeamViewer \ Version9/v ClientID')中的/ f“tokens = 3”%% a Echo Echo 。 回声。 echo用户的Teamviewer ID是:%ID% pause 不确定如何将此显示为批处理数据?对不起 – R0tten 2014-11-06 18:18:20

1

将输出输出到文件。阅读该文件的每一行,查找值名称。然后,通过SET /A运行积分值将其转换为十进制。这适用于整数注册表数据类型,但如果值存储为REG_BINARY(有时会发生),则不适用。

SETLOCAL 

SET "KEY=HKLM\Software\Wow6432Node\TeamViewer\Version9" 
SET "VALUE=ClientID" 

SET "TEMPFILE=%TEMP%\REG_QUERY_%RANDOM%.txt" 

REG QUERY "%KEY%" /v "%VALUE%" > "%TEMPFILE%" 

FOR /F "tokens=1,2,3,4" %%k IN (%TEMPFILE%) DO (
    IF "%%~k"=="%VALUE%" (
     SET /A DATA=%%m 
    ) 
) 
DEL /Q "%TEMPFILE%" 

@ECHO Data: %DATA% 
+0

非常感谢。拉斐尔的解决方案虽然可以,但我确信这个解决方案也可以。很有帮助! – R0tten 2014-11-06 18:17:21