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
任何帮助非常感谢
答案 0 :(得分:0)
该错误是因为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
注意:
"
,因为它包含空格。