Board logo

标题: [注册表类] [已解决]批处理如何正确导入下面注册表 [打印本页]

作者: ifer    时间: 2010-3-20 22:30     标题: [已解决]批处理如何正确导入下面注册表

该批处理的目的就是先删除目标注册表项,然后导入目标注册表,我自己写的如下,但是没有成功,批处理窗口也是一闪而过,好像有提示命令错误什么的,由于太快也看不出来具体内容,使用pause也无法暂停批处理,麻烦各位大侠帮忙完善指出该批处理的错误和不足之处,非常感谢了。


@echo off
echo "正在删除注册表!"
reg delete "HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /f

echo "正在重建注册表!"
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve /t REG_SZ /d "我的电脑" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve "InfoTip" /t REG_EXPAND_SZ /d "@%SystemRoot%\system32\SHELL32.dll,-22913" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve "IntroText" /t REG_EXPAND_SZ /d "@%SystemRoot%\system32\SHELL32.dll,-31751" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve "LocalizedString" /t REG_EXPAND_SZ /d "@%SystemRoot%\system32\SHELL32.dll,-9216" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon /ve /t REG_EXPAND_SZ /d "%SystemRoot%\Explorer.exe,0" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\InProcServer32 /ve /t REG_EXPAND_SZ /d "%SystemRoot%\system32\SHELL32.dll" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\InProcServer32 /ve "ThreadingModel" /t REG_EXPAND_SZ /d "Apartment" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell /ve /t REG_SZ /d "none" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find  /ve /t REG_EXPAND_SZ /d "@%SystemRoot%\system32\SHELL32.dll,-8503" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find  /ve "SuppressionPolicy" /t REG_DWORD /d "00000080" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find\command /ve /t REG_EXPAND_SZ /d "%SystemRoot%\Explorer.exe" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find\ddeexec /ve /t REG_SZ /d "[FindFolder("%l", %I)]" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find\ddeexec\application /ve /t REG_SZ /d "Folders" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find\ddeexec\topic /ve /t REG_SZ /d "AppProperties" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage /ve /t REG_EXPAND_SZ /d "@%windir%\system32\mycomput.dll,-400" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage /ve "SuppressionPolicy" /t REG_EXPAND_SZ /d "4000003c" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command /ve /t REG_EXPAND_SZ /d "%windir%\system32\mmc.exe /s %windir%\system32\compmgmt.msc" /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder /ve /t REG_SZ /d " " /f
reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder /ve "HideOnDesktopPerUser" /t REG_SZ /d " " /f
pause

[ 本帖最后由 ifer 于 2010-3-20 23:40 编辑 ]
作者: Batcher    时间: 2010-3-20 22:44

@echo off删掉
代码保存为C:\test.bat
开始
运行
cmd
C:\test.bat
作者: ifer    时间: 2010-3-20 22:52

感谢老大的指点,目前在cmd下执行后有个错误提示,出现这种错误提示是因为批处理里有错误数据或者什么字符造成的吗?
作者: Batcher    时间: 2010-3-20 22:55

右键单击C:\1.bat
编辑
文件
另存为
编码格式设置为ANSI
作者: ifer    时间: 2010-3-20 22:59

老大一语惊醒梦中人啊

对于批处理执行中提示:“错误:命令行参数太多”,这种应该如何处理?

比如执行:

reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve "LocalizedString" /t REG_EXPAND_SZ /d "@%SystemRoot%\system32\SHELL32.dll,-9216" /f
作者: Batcher    时间: 2010-3-20 23:01

把/ve改成/v
作者: ifer    时间: 2010-3-20 23:26

目前发现的问题貌似不是ve引起的,而是由于赋值不对,我有如下2个问题咨询,非常感谢老大这么晚还辛苦解答。


第一,如下图  
那个默认我应该怎么表达?

原来的代码是:reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve /t REG_SZ /d "我的电脑" /f  (错误的,求解)


第二,dword的怎么赋值过去


如图显示的是SuppressionPolicy  的值为80(16进制)

之前的代码:reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find  /ve "SuppressionPolicy" /t REG_DWORD /d "00000080" /f   (错误的,求解)
作者: Batcher    时间: 2010-3-20 23:36

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Test>reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /ve /t REG_SZ /d "批处理之家" /f

操作成功结束

C:\Test>

作者: ifer    时间: 2010-3-20 23:37

诡异了  我RP出现问题了   第一个我再去测试下,那么第二个问题还麻烦告知,谢谢了。
作者: Batcher    时间: 2010-3-20 23:38

  1. reg add HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\find /v "SuppressionPolicy" /t REG_DWORD /d "0x80" /f
复制代码

作者: ifer    时间: 2010-3-20 23:39

原来直接用16进制表示,我囧了 我膜拜我自己了,我可以去撞墙了。

非常感谢老大的指导。




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