高分求助!帮编写一个BAT!
将下面REG文件的内容写进注册表。=====================================================WindowsRegistry...
将下面REG文件的内容写进注册表。
=====================================================
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.mdef]
@="MultiDir_EggFile"
[HKEY_CLASSES_ROOT\.mdef\ShellNew]
"Command"="\"%SystemRoot%\\system32\\MultiDir.vbs\" \"%1\""
[HKEY_CLASSES_ROOT\MultiDir_EggFile]
@="多文件夹"
[HKEY_CLASSES_ROOT\MultiDir_EggFile\DefaultIcon]
@="C:\\WINDOWS\\System32\\shell32.dll,3"
[HKEY_CLASSES_ROOT\MultiDir_EggFile\shell]
[HKEY_CLASSES_ROOT\MultiDir_EggFile\shell\open]
[HKEY_CLASSES_ROOT\MultiDir_EggFile\shell\open\command]
@="\"%SystemRoot%\\system32\\MultiDir.vbs\" \"%1\""
=============================================================
提醒:
%1这个变量本来是要写进注册表的,可是这个bat把它当成自己的变量了,又因为这个变量没有赋值,所以写进注册表时缺少了"%1"。
求高手帮忙,因为不想浪费分数,所以先不悬赏,如果解决一定追加高分悬赏。 展开
=====================================================
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.mdef]
@="MultiDir_EggFile"
[HKEY_CLASSES_ROOT\.mdef\ShellNew]
"Command"="\"%SystemRoot%\\system32\\MultiDir.vbs\" \"%1\""
[HKEY_CLASSES_ROOT\MultiDir_EggFile]
@="多文件夹"
[HKEY_CLASSES_ROOT\MultiDir_EggFile\DefaultIcon]
@="C:\\WINDOWS\\System32\\shell32.dll,3"
[HKEY_CLASSES_ROOT\MultiDir_EggFile\shell]
[HKEY_CLASSES_ROOT\MultiDir_EggFile\shell\open]
[HKEY_CLASSES_ROOT\MultiDir_EggFile\shell\open\command]
@="\"%SystemRoot%\\system32\\MultiDir.vbs\" \"%1\""
=============================================================
提醒:
%1这个变量本来是要写进注册表的,可是这个bat把它当成自己的变量了,又因为这个变量没有赋值,所以写进注册表时缺少了"%1"。
求高手帮忙,因为不想浪费分数,所以先不悬赏,如果解决一定追加高分悬赏。 展开
展开全部
@ECHO OFF
SET CR.mdef=REG ADD HKCR\.mdef
SET CRmdef=REG ADD HKCR\MultiDir_EggFile
SET VAvbs="""%%SystemRoot%%\system32\MultiDir.vbs"""" """%%1"""
%CR.mdef% /f /ve /d MultiDir_EggFile
%CR.mdef%\ShellNew /f /v Command /t REG_EXPAND_SZ /d %VAvbs%
%CRmdef% /f /ve /d "多文件夹"
%CRmdef%\DefaultIcon /f /ve /d C:\WINDOWS\System32\shell32.dll,3
%CRmdef%\shell\open\command /f /ve /t REG_EXPAND_SZ /d %VAvbs%
ECHO.
PAUSE
注1:两处command的字符串类型应为REG_EXPAND_SZ,这样才会扩展%SystemRoot%,上述我已把它改正了!还有DefaultIcon的值在创建时最好用%SystemRoot%扩展来代替C:\WINDOWS!
注2:提醒一下,ShellNew处还应创建NullFile项,且其值为空,这样才能出现在新建菜单里!
SET CR.mdef=REG ADD HKCR\.mdef
SET CRmdef=REG ADD HKCR\MultiDir_EggFile
SET VAvbs="""%%SystemRoot%%\system32\MultiDir.vbs"""" """%%1"""
%CR.mdef% /f /ve /d MultiDir_EggFile
%CR.mdef%\ShellNew /f /v Command /t REG_EXPAND_SZ /d %VAvbs%
%CRmdef% /f /ve /d "多文件夹"
%CRmdef%\DefaultIcon /f /ve /d C:\WINDOWS\System32\shell32.dll,3
%CRmdef%\shell\open\command /f /ve /t REG_EXPAND_SZ /d %VAvbs%
ECHO.
PAUSE
注1:两处command的字符串类型应为REG_EXPAND_SZ,这样才会扩展%SystemRoot%,上述我已把它改正了!还有DefaultIcon的值在创建时最好用%SystemRoot%扩展来代替C:\WINDOWS!
注2:提醒一下,ShellNew处还应创建NullFile项,且其值为空,这样才能出现在新建菜单里!
展开全部
那个%号可以用转义符号来表示 ^% 这样写 就能写入了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bat文件中,用%%1表示字符串%1
百分号在bat文件和命令行中的含义差别很大,
在bat文件中,%1表示第一个参数,%%1表示字符串%1,%%SystemRoot%%表示字符串%SystemRoot%,^%表示一个字符^
在命令行中,%1表示字符串%1,%%1表示字符串%%1,%%SystemRoot%%表示字符串%C:\WINDOWS%,^%表示一个字符%
如果%1(在命令行中)或%%1(在bat文件中)被作为循环变量,它表示变量的值
另外,你写进注册表的数据还包含引号,用reg add命令很难写入引号(至少我不会),最好用其他方法,如导入reg文件或用vbs文件修改。
百分号在bat文件和命令行中的含义差别很大,
在bat文件中,%1表示第一个参数,%%1表示字符串%1,%%SystemRoot%%表示字符串%SystemRoot%,^%表示一个字符^
在命令行中,%1表示字符串%1,%%1表示字符串%%1,%%SystemRoot%%表示字符串%C:\WINDOWS%,^%表示一个字符%
如果%1(在命令行中)或%%1(在bat文件中)被作为循环变量,它表示变量的值
另外,你写进注册表的数据还包含引号,用reg add命令很难写入引号(至少我不会),最好用其他方法,如导入reg文件或用vbs文件修改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接把文件储存为*.reg
再用批处理把它导入
再用批处理把它导入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询