使用reg_query仅返回Typed URL和SystemshutDown的数据

时间:2016-08-16 18:12:01

标签: windows cmd windows-7 registry

C:\Users\Admin1>REG QUERY HKLM\SYSTEM\ControlSet001\Control\Windows /v ShutdownTime

Retruns

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \控制\视窗     ShutdownTime REG_BINARY 42B96F5BC9F7D101

我希望CMD只显示密钥 42B96F5BC9F7D101 的数据,以便我可以将其输出到csv文件

我用谷歌搜索并阅读论坛并从另一个例子中获得了这个 -

for /f "tokens=2*" %%a in ('REG QUERY HKLM\SYSTEM\ControlSet001\Control\Windows /v ShutdownTime 2^>nul') do set "ShutdownTime=%%b"
echo %ShutdownTime%

返回

C:\Users\Admin1>for /f "tokens=2*" %%a in ('REG QUERY HKLM\SYSTEM\ControlSet001
Control\Windows /v ShutdownTime 2^>nul') do set "ShutdownTime=%%b"
%%a was unexpected at this time.
C:\Users\Admin1>echo %ShutdownTime%
%ShutdownTime%

我还想只获取要显示的数据

REG QUERY HKCU\Software\Microsoft\Internet Explorer\TypedURLs /v url1 

任何帮助非常感谢

1 个答案:

答案 0 :(得分:0)

%% a此时出人意料。

该错误是因为for循环参数在% shell中使用时使用单个cmd命名,在批处理文件中使用时使用双%%

%%parameter :  A replaceable parameter:
               in a batch file use %%G (on the command line %G)

来源for /f

因此,您需要将%%a替换为%a,将%%b替换为%b

示例1:

F:\test>@for /f "tokens=2*" %a in ('REG QUERY HKLM\SYSTEM\ControlSet001\Control\Windows /v ShutdownTime 2^>nul') do @set "ShutdownTime=%b"

F:\test>@echo %ShutdownTime%
BE7AE7FCE7DCD101

示例2:

F:\test>@for /f "tokens=2*" %a in ('REG QUERY "HKCU\Software\Microsoft\Internet Explorer\TypedURLs" /v url1 2^>nul') do @set "Url1=%b"

F:\test>@echo %Url1%
http://www.example.com

注意:

  • 示例2在键名称周围引用",因为它包含空格。

进一步阅读