好处是不用担心reg query中可能出现的“吃”中文字符的问题。
例:
@echo off
for /f "tokens=*" %%i in ('wmic /namespace:\\root\default path stdregprov call GetStringValue hDefKey^=^^^&H80000002 sSubKeyName^="SOFTWARE\Microsoft\Windows\CurrentVersion" sValueName^="SM_ConfigureProgramsName"') do set %%i 2>nul
echo %sValue %
pause
goto :eof
读取的是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion下的SM_ConfigureProgramsName的值。
由于涉及到更改命名空间,以及特殊字符的转义,再加上WMIC命令本身就比较复杂,所以代码看起来比较乱,简单地演示一下就好。
另外由于很少使用BAT了,所以未对上面的代码做严密测试,有BUG的朋友请在下面指出,以免以讹传讹。