Board logo

标题: [注册表类] 批处理如何提取注册表中一个项与FOR循环难题? [打印本页]

作者: sixes    时间: 2011-1-25 01:13     标题: 批处理如何提取注册表中一个项与FOR循环难题?

我想导出注册表中如下内容:
HKEY_CURRENT_USER\Control Panel\Desktop\HungAppTimeout  
(注意:HungAppTimeout是Desktop项下的字符串)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (这是项)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

这三个只是目前想导出的,以后可能会增加,我便想写方便以后增加项的BAT,可是
1。在FOR中遇到了困难。
貌似FOR用在字符串中时,循环变量不会自动被赋予下一个值。
我在代码中用tokens=1,2-16解决,但以后要增加项的时候,除了改RegPath外,
FOR中还得增加代码,你懂的。
2。我只能导出项的值,而无法导出项下单个字符串的值(不要项下全部的值哦)。

请大侠指点一下哈。

@echo off
setlocal EnableDelayedExpansion
set name="ExRun"
set txt="%ALLUSERSPROFILE%\桌面\%name%.txt"
set bat="%ALLUSERSPROFILE%\桌面\%name%.bat"
set RegPath=HKEY_CURRENT_USER\Control Panel\Desktop\HungAppTimeout#HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run#HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run#! (以后可能增加项)
set test=#a#b#c#d!
@echo off
for /F "eol=! delims=# tokens=1,2-16" %%i in ("%RegPath%") do (
:echo %%i
::@echo %%j
::@echo %%k
regedit /e HungTime.reg %%i (这句无法执行成功)
regedit /e CurrRun.reg  %%j
regedit /e LocalRun.reg %%k
type CurrRun.reg  >  temp.reg
type LocalRun.reg >> temp.reg
type HungTime.reg >> temp.reg
date /T       >> %txt%
time /T       >> %txt%
type temp.reg >> %bat%
type temp.reg >> %txt% && del temp.reg
)
作者: sixes    时间: 2011-1-25 11:05

咋还木有人回复我呀。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2