|
本帖最后由 pogua007 于 2016-6-26 09:56 编辑
诶,你怎么问这样的问题。这个问题确实比较古怪,解决方法更是古怪的非常没有道理,使用也非常不方便。
如果要使用变量作为command的路径,需要@值的数据类型是可扩充的字符串(REG_EXPAND_SZ),还有你的语法也不对,一般的系统变量调用都是一个%,除了批处理文件中,因为cmd解释器的原因,要两个%。
知道这些解决也是很麻烦的,
一、注册表编辑器、vbs、reg命令都是没有办法修改数据类型的;
二、默认值是没有办法删除的;
三、可扩充的字符串(REG_EXPAND_SZ)转换是也是一个问题,REG_EXPAND_SZ值在reg文件中是很长的二进制数据,因为用的少也没有找转换的办法,目前的办法只有在注册表编辑器中设置好数值,然后导出为reg文件。
如你例子中的解决办法就是,在你要改的项下,新建一个可扩充的字符串(REG_EXPAND_SZ)值,然后设置数据为,你需要的数据,比如你7z的路径上面,就应该写为%SystemDrive%\7-Zip\7zFM.exe "%1",然后导出注册表文件,再修改注册表文件,先加一行删除项的。然后删除默认值,把你后来加的可扩充的字符串值,改名为@。然后导入注册表文件。具体注册表内容如下:
- Windows Registry Editor Version 5.00
- [-HKEY_CLASSES_ROOT\7-Zip.rar\shell\open\command]
- [HKEY_CLASSES_ROOT\7-Zip.rar\shell\open\command]
- @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,44,00,72,00,69,00,76,00,65,\
- 00,25,00,5c,00,37,00,2d,00,5a,00,69,00,70,00,5c,00,37,00,7a,00,46,00,4d,00,\
- 2e,00,65,00,78,00,65,00,20,00,22,00,25,00,31,00,22,00,00,00
复制代码
目前就这一个办法,我目测一下这个可扩充字符串好象就是16进制文本吗,不过就是知道了也很麻烦。
晕,我写的路径是%SystemDrive%\7-Zip\7zFM.exe,你的是%SystemDrive%\7Zip\7zFM.exe,你要拿去直接测试也会出错,导入之后自己修改吧,你看这也是一个麻烦,不能直接修改值。 |
|