
[已解決]批處理根據注冊表判斷系統版本號寫了一個讀取注冊表項,判斷系統版本號的批處理,win7下測試:假如沒有HKEY_LOCAL_MACHINESYSTEMSetupService Reporting APIComponentsCoreOS,Version值,以下腳本得到的結果是:
- C: │本地系統│Windows 7 Ultimate│x64│(.7601)
nclick="copycode($('code0'));">復制代碼
,而我想要的結果是:
- C: │本地系統│Windows 7 Ultimate│x64│(6.1.7601)
nclick="copycode($('code1'));">復制代碼
,以下腳本不知錯在哪里了,請各位高手指導一下,謝謝了!
- @echo off
- ::以下內容,PE下無效
- if /i not %systemdrive%==X: set LoadrV=C:
- if /i %systemdrive%==X: set LoadrV=X:
- rem 查詢系統類型
- if exist %Windir%SysWOW64 (set LoaOsarch=x64) else if not exist %Windir%SysWOW64 (set LoaOsarch=x86) else set LoaOsarch=???
- )
- rem 查詢系統版本號,
- for /f tokens=3 %%c in ('reg query HKLMSYSTEMSetupService Reporting APIComponentsCoreOS /v Version 2^>nul ^| findstr /i REG_SZ') do set LoaVer=%%c
- rem 如果上面未查詢到版本號,則在此處查詢
- if not defined LoaVer (
- for /f tokens=3 %%f in ('reg query HKLMSOFTWAREMicrosoftWindows NTCurrentVersion /v CurrentVersion 2^>nul ^| findstr /i REG_SZ') do set LoaVer=%%f
- for /f tokens=3 %%g in ('reg query HKLMSOFTWAREMicrosoftWindows NTCurrentVersion /v CurrentBuildNumber 2^>nul ^| findstr /i REG_SZ') do set LoaVer=%LoaVer%.%%g
- )
- rem 查詢系統名稱
- for /f tokens=3* %%d in ('reg query HKLMSOFTWAREMicrosoftWindows NTCurrentVersion /v ProductName 2^>nul ^| findstr /i REG_SZ') do set LoaName=%%d %%e
- echo;%LoadrV%│本地系統│%LoaName%│%LoaOsarch%│^(%LoaVer%^)
- )
- @echo on
- pause&&goto :eof
nclick="copycode($('code2'));">復制代碼
自己解決了,分享給大家,謝謝大伙的幫助
- @echo off
- ::以下內容,PE下無效
- if /i not %systemdrive%==X: set LoadrV=C:
- if /i %systemdrive%==X: set LoadrV=X:
- setlocal enabledelayedexpansion
- rem 查詢系統類型
- if exist %Windir%SysWOW64 (set LoaOsarch=x64) else if not exist %Windir%SysWOW64 (set LoaOsarch=x86) else set LoaOsarch=???
- )
- rem 查詢系統版本號
- for /f tokens=3 %%c in ('reg query HKLMSYSTEMSetupService Reporting APIComponentsCoreOS /v Version 2^>nul ^| findstr /i REG_SZ') do set LoaVer=%%c
- rem 如果上面未查詢到版本號,則在此處查詢
- if not defined LoaVer (
- for /f tokens=3 %%f in ('reg query HKLMSOFTWAREMicrosoftWindows NTCurrentVersion /v CurrentVersion 2^>nul ^| findstr /i REG_SZ') do set LoaVer=%%f
- for /f tokens=3 %%g in ('reg query HKLMSOFTWAREMicrosoftWindows NTCurrentVersion /v CurrentBuildNumber 2^>nul ^| findstr /i REG_SZ') do set LoaVer=!LoaVer!.%%g
- )
- rem 查詢系統名稱
- for /f tokens=3* %%d in ('reg query HKLMSOFTWAREMicrosoftWindows NTCurrentVersion /v ProductName 2^>nul ^| findstr /i REG_SZ') do set LoaName=%%d %%e
- echo;%LoadrV%│本地系統│%LoaName%│%LoaOsarch%│^(%LoaVer%^)
- )
- endlocal
- @echo on
- pause&&goto :eof
nclick="copycode($('code3'));">復制代碼