2014-11-06 95 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