[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理如何提取注册表中一个项与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

咋还木有人回复我呀。

TOP

返回列表