- 帖子
- 3
- 积分
- 24
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2011-1-25
|
[注册表类] 批处理如何提取注册表中一个项与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
) |
-
1
评分人数
-
-
Batcher:
请编辑自己的帖子,把代码放到code标签里面 ...PB -2
|