页面

用批处理导入带有路径变量的注册表项

这应当是一个很实用的功能了,使用好之后可以让我们带着我们的PAC脚本到处跑,想用PAC脚本的时候,双击运行就OK了。
原来我是很少去观注注册表的,用绿色软件用多了,注册表的操作对我来说似乎已经并不重要了(实际上绿色软件大多也会对注册表有所操作的,只是影响比较小)。但往往,总是会碰到一些东西必须去修改注册表才能使用。
这 次我遇到的问题和昨天我那篇没写完却被几个机器Blog收录的日志有些关系。上篇日志中我说到使用PAC脚本来过滤控制IE浏览器的代理状态,使用这个 PAC脚本就需要在IE浏览器的“工具”>>“Internet选项”>>“连接”>>“局域网设置”中选中“使用 自动配置脚本”,并且还要在地址中手动填入你的PAC脚本的本地地址


“这是个相当繁琐而无趣的操作,为什么不使用一些命令什么的来简化操作呢?”由于这是系统集成的IE浏览器中的设置,我很快就想到了它的配置信息应该在注册表中,简单一搜,果然不出所料。[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "AutoConfigURL" 有兴趣的大家可以去看看(使用了PAC脚本后才会有这个项)。
让 我纳闷的是这个项的键值,它所使用的键值是一个固定路径。也就是说,如果我直接将此项通过注册表编辑器导出来以后使用的话,那么我的PAC脚本每次都需要 放在同一位置(盘符&路径),我是带移动硬盘满街跑的,用的所有程序软件都是自己移动硬盘上的,由于上网地点环境的不同,我的移动硬盘每次所获得 的系统分配盘符也不尽相同,这样使用一个有固定地址值的键的话,PAC脚本是无法找到无法启用的。这里我们就需要使用一些系统变量路径或者相对路径什么的 了。
但是直接导出的Reg注册表文件是无法导入这些变量路径的,我只好将目标锁定到了批处理上。批处理是可以带变量路径,而且也可以通过它来编辑注册表,虽然相对比较麻烦。
在网上也找了很多相关的博文参考,可基本上都没有明确的一个做法。这里我就不多说这些了,我先将我的做法分享出来吧。
老鸟请略过:新建一个文本文件,首先写入 Windows Registry Editor Version 5.00 空一行,开始注册表的操作。比如我们这里编辑这个使用PAC脚本的注册表,可以写上reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /d file://X:\\FuckGFW.pac /f
其中Reg add 是批处理中添加注册表项的命令,后面是注册表项的具体路径。

/v 所选项下要添加的键值名
/d
具体的valuename键值数据库
/f
不提示强制覆盖写入此注册表项
一般情况下实际上应该还有个 /t 的参数,它是注册表键的数据类型,不写的话默认是REG_SZ数据类型,我们用的就是REG_SZ数据类型,所以就省略没写了。
具体的参数说明可以在系统运行中输入CMD,回车确认后在CMD窗口中输入REG add /?来查看,我这里就不再长篇大论了。
老鸟也可以考虑看了:现在是最关键的文件路径填写了,难道用固定值吗?当然不了,这里我在 /d 后面填写的是 file://"%cd%"\FuckGFW.pac /f 仅手动填写PAC脚本的文件名,而位置则使用"%cd%"这个参数来获取当前路径,这样,只要你的这一个批处理文件和你建的PAC脚本在同一路径下,运行一下这个批处理,系统就会把你的pac脚本启用了。
最后,我在提点额外的小发现,PAC脚本的地址格式要求还算比较宽松的,比如我们们PAC脚本在d:a.pac这个位置,那么我们的地址赶写 file://d:a.pac  file://d:\a.pac  file://d:\\a.pac 都是可以的。

提供一个简单的PAC脚本以及批处理文件下载,PAC脚本使用的是自由门的默认端口,如果你在用自由门的话,那么恭喜你,你可以直接用了。很抱歉,我提供的注册表并不非常完整,只指定的PAC脚本的路径,还未启用,我明天会来放出一个完整的导入文件。
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

0 Response to "用批处理导入带有路径变量的注册表项"

Related Posts with Thumbnails