大多数Windows用户,右键中默认新建的文件格式就那么几种。这可能对我们爱折腾或者特殊要求的人员来说可能有点不方便,比如说要创建个 .reg .bat .vbs等格式的文件,就需要新建个文本文件修改后缀为或者是通过对应软件保存为 .reg .bat .vbs等。是不是有点麻烦哟,可不可以在右键中的新建选项中添加我们所想要的文件类型呢。在大Windows的环境下,这些没什么问题的。
Regedit 注册表是Windows系统下一个好玩而又强大的东西,这里注册表(Registry,繁体中文版Windows操作系统称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。算是Windows系统的一个的核心吧,总之这里面的设置关联着许多我们所接触的UI交互界面,比如可以选择去掉快捷方式图标的小箭头、管理员身份标识的小盾牌等等,像本文章添加新建选项的文件格式也是不在话下的。
比如要在右键新建选项中添加 Bat 批处理文件,我们可以在(管理员)命令提示符下运行下面两条命令即可。此命令提示符一定要是具有管理员权限否则权限不够,在开始菜单中的 Windows 系统 或 附件 文件中找到命令提示符右键以管理员身份运行,若登录的是系统内置的管理员账户 Administrator 就直接打开即可,判断是否为管理员权限可以通过标题栏判断,若是会标有 管理员: C:WINDOWSsystem32cmd.exe 等字样。
下面的命令大小写都可以,为了美观且和系统设置的一致才将特定字母进行大写,运行第一条命令就可以了此时右键新建选项就有 Windows 批处理的文件类型了,至于第二个吧命令应该是修改选项显示的名称吧,不过笔者试了没有什么用。
reg add "HKCR.batShellNew" /v NullFile /t REG-SZ /d "" /f
reg add "HKCR.batShellNew" /v FileName /t REG_EXPAND_SZ /d "" /f
关于命令的解释就简单说一下吧, HKCR 是注册表五大主目录树之一的 HKEY_CLASSES_ROOT 的简写,本目录是程序运行时必要的信息,还有其它四项就不一一说明了,详情可以百度。后面这些参数 像 /f /v /d 可以在命令提示符中输入 reg add /? 进行详细的了解,HKCR.batShellNew 中ShellNew是新建项的名称 当然可不上名称这么简单,就是这个项确定该文件类型是否在右键新建选项中,还有其下名为 NullFile 的字符串值 。 REG-SZ 就是表示字符串值 REG_EXPAND_SZ 则表示可拓展字符串值 不止这两种还有八种左右吧 不详说了。后面的 "" 就是前面对应字符串值的值 这里表示为空。
运行完成后右键,在新建选项中就有刚才添加的 Windows 批处理。你可以将 .bat 替换成你所需要添加的后缀,像 .vbs .html .c .cpp .reg .js .cmd 等等,要书写正确哟 不然就成了注册表的一个垃圾数据咯。
当然爱折腾的人就不会满足这样暗操作,就可以通过命令 regedit 或软件 Registry Workshop进入注册表进行修改, 路径 HKEY_CLASSES_ROOT 目录下以 .开头的就是Windows系统中文件格式的后缀名 展开新建名为 ShellNew 的项 然后在此项中(即右侧框中)建立个名为 NullFile 的字符串值 就OK了。(Tips:像在资源管理器中一样输入字母或文字就可定位对应文件夹位置,前提就是使定位的内容处于活动状态 鼠标激活状态) 同样的我们就可以通过此方法清除新建中多余或不常用的文件格式,像 Windows 7中的公文包可以找到 Briefcase 将其下的 ShellNew 项删除 联系人选项对应后缀 .contact 日记本选项后缀 .jnt 。 Windows 7 8 10 的各选项都不大一样,可能有些后缀名也不一样,跟要实际情况吧。(提醒: 为了防止不必要的损失,删除注册表项之前备份好注册表)
再往下看,可以看到这些 VBSFILE batfile regfile 等等这些都是对应文件格式后缀名。有什么联系呢?展开一看 shell shellex open command 这些单词不陌生吧,大概可以猜出这里应该就是打开方式什么的 再看看 command 项中字符串值的值为 "%SystemRoot%System32WScript.exe" "%1" %* 明白了吧 大概就是这些文件类型打开方式 默认打开方式就可能种此有关联。还有其它像 Edit Print runas 这些的就和编辑、打印、运行身份有关咯,更多的这些笔者就未深入了解了,有折腾精神的你不妨玩玩否,不过由于不当的操作弄崩了系统笔者就不管哟~ 我觉得再次提醒折腾之前备份好注册表才是明智之举。
下面所述就是在右键就添加 以管理员身份命令提示符 选项。运行命令提示符嘛就 Windows + R 输入 cmd 回车就打开了、按下Shift再右键选项在此处打开命令提示符窗口或者在开始菜单中找、再不者就去 C:WindowsSystem32 或 C:WindowsSysWOW64 目录去找。这些在登录系统内置的管理员账户 Administrator 的情况下不是问题了,直接打开就是管理员权限。如果不是呢? 就要到开始菜单找到命令提示符然后右键管理员身份运行或者到资源管理器目录找到再右键以管理员身份运行。像笔者未启用系统内置管理员 Administrator ,此方法适用没有启用系统内置管理员 Administrator 账户的 Windows 用户,当然想玩也不是不可以。
上码:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTDirectoryBackgroundshellrunas]
"icon"="C:\Windows\System32\shell32.dll,303"
@="以管理员身份运行命令提示符"
"Extended"=""
[HKEY_CLASSES_ROOTDirectoryBackgroundshell
unascommand]
@="cmd.exe /t:4f /s /k pushd "%V" "
复制粘贴到文本文件将其保存为 .reg 为后缀的注册表文件,双击导入注册表这个名为 以管理员身份运行命令提示符的选项 就添加到了右键中,按Shift键右键就出现了。什么??! 还要按Shift键?不急听我慢慢道来。
第一行就是注册表的版本声明吧,让系统知道这是个注册表文本文件要导入到注册表,就像 html 声明 <!DOCTYPE html> 差不多吧,和上面的一样 这个 [HKEY_CLASSES_ROOTDirectoryBackgroundshell unas] 就是 shell 该项下的新建个名为 runas 的项,runas 是以管理员身份运行的所用到的,你可以注册表其它项可以看到 runas,如前言中的 batfile等项下有此项,应该是右键此类格式文件时右键中有以管理员身份运行的意思。而在此处(空白处右键)没有,就以此来实现右键中添加 以管理员身份运行命令提示符 的选项,其实就是普通的启动命令提示符 不过通过 runas 我们才得以管理员身份运行。
"icon"="C:\Windows\System32\Shell32.dll,303"
这个就是设置选项前图标样式,像右键中个性化、显示设置那样选项前边有个图标,可以不设置就删除了此行,后面 "C:\Windows\System32\Shell32.dll,303" 就是图标的路径, 这是 Shell32.dll 虽是动态链接库文件可是内包含了百余种图标,那么 303 就是图标的编号了, 其实像 Shell32.dll 是个图标库的玩意还有 imageres.dll imagesp1.dll (怎么知道呢?快捷方式有个更改图标的功能,当你匹配不了某个图标时系统会自动跳转选择此文件 Shell32.dll 这个文件包含大多数图标 反观我发现的上面两个少多了 打开后就可以看到许多的图标供选择 而此编号就依照这些图标排列顺序来编 有点多 要花点时间对应出来哟 记得我没事的时候对应了一下的还制作了照片 找找看 找到了再补充上来) 这些在不同Windows系统下是不完全相同的,因为新发布的系统肯定是新增了许多图标和样式 相应的编号也可能改变 不过新版本 Windows包括旧版本中的图标 。像笔者提供的 Shell32.dll,303 在 Windows 7 下是个中等图标的样式 而 Windows 10 下是一对带勾的成员 不过此对应正确的图标应为imageres.dll文件中的 263 号 命令提示符边上一个管理员的图标。
@="以管理员身份运行命令提示符" 此项将命名右键中选项的名称,大意是将 runas 项下的 (默认) 空白值修改为 以管理员身份运行命令提示符,在Windows的注册表中每项下都有一个名为 (默认) 的空白(REG_SZ)字符串值,你也可以删除此行 此时选项中的名称为 以管理员身份运行(A) 系统就分配默认的名称啦。你想怎样 it's up to you 。只是修改过后就没有了绑定的按键了 不过应该影响不大吧 ,大部分我们是以鼠标进行操作的。
"Extended"="" 就表示在 runas 项下新建个值为空白名为 Extended 的字符串值,这个就是按 Shift 键的所在了,删除此行就无需按下 Shift 再右键,直接右键就可见。不过若不想直接右键可见就可以加上此行,这个就和 Windows 7 下按住Shift右键会出现一个 在此处运行命令提示符 (Windows 10 下是 Powershell 一个比命令提示符cmd.exe 更强大灵活的工具)选项的方式类似,添加此项后按下Shift右键系统的 在此处打开命令提示符窗口/在此处打开Powershell窗口会和刚才添加的一起出现在选项中。
[HKEY_CLASSES_ROOTDirectoryBackgroundshell unascommand]
@="cmd.exe /t:4f /s /k pushd "%V""
和之前差不多在 runas 项下新建个(默认)空白值为 cmd.exe /t:4f /s /k pushd "%V" 名为 command 的项,此项作用就是指向运行文件的路径即 命令提示符 cmd.exe 。 cmd.exe 就是可执行文件 命令提示符 不多解释, 后面的这些参数的意思可以在 命令提示符中运行 cmd /? 了解详明,简单说一下参数
/t:4f 就是设置打开的命令提示符窗口前景色和背景色 此处为红底白字 更多的配色请在命令提示符窗口中运行 color /? 了解详情
/s 执行字符串指定的命令然后终止 /k 执行字符串指定的命令但保留 注意如你要设置前景色和背景色 那么 /t:4f 这个参数要添加在 /s /k 之前 否则设置无效且提示语法不正确
pushd 是保存当前目录以供 POPD 命令使用,然后改到指定的目录。详情转到 https://technet.microsoft.com/zh-cn/library/cc771180(v=ws.10).aspx
"%V" 为转义字符,转义 "" 参数为 %V 笔者也不知其含义,只是看到 Powershell 项下的 commmand 项的 (默认)空白值 的值中后带有 "%V" 故也添加上,加不加应该没有什么问题吧,但是为了保持队形 就添加了。。
不甘心这样的用注册表文件导入添加的,可以到注册表中 HKEY_CLASSES_ROOTDirctoryBackgroundshell 目录树下进行添加,对照上面给出的代码依个进行添加设置吧。对于注册表的玩法有许多,感兴趣的童鞋呢,自己慢慢去玩。
最后,提醒一下玩之前请备份好注册表哟,选定主干的注册表右键导出,修改保存名称和地址就行了。这是对整个的注册表进行备份,要备份某个项选定某项右键导出就行,恢复方式就直接打开备份的注册表文件 .reg 导入到计算机就OK。
那么,玩的愉快哟~