[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 注册表中数据中的 %1 和 %0 有什么区别?

本帖最后由 pcl_test 于 2016-7-2 13:25 编辑

比如:下面这两个添加注册表项,出来的效果都是一样的,即“用123.exe 来打开关联类型文件”,
         那么这里的 “1%”和“0%”在实际使用中有区别吗?(都是指的“文件自身”)

reg add "HKCR\123\shell\open\command"  /ve /d "\"C:\123.exe\" %%0 " /f  
reg add "HKCR\123\shell\open\command"  /ve /d "\"C:\123.exe\" %%1 " /f
1

评分人数

回复 8# /zhqsystem/zhq


    多谢!

TOP

回复 7# doswork
for /?就会出来了
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 6# /zhqsystem/zhq


    多谢指点!

    “用扩展形式取自己需要的值”这句不理解,能举个例子吗?谢谢!

  vbs中run 命令运行的都是指定的固定值,比如  ww.Run  """%ProgramFiles%\12\Notepad.exe""  文本.txt",1,true 这种是固定的值,您是不是指的类似这种情况?

但注册表中用%1这种好像都是关联一种后缀的打开方式,所有指定后缀的文件用固定程序打开,
值%SystemRoot%\system32\NOTEPAD.EXE %0  (用NOTEPAD.EXE 打开1.txt;)

TOP

本帖最后由 /zhqsystem/zhq 于 2016-7-2 21:59 编辑

回复 3# doswork
%0和%1用时比较模糊建议用扩展形式取自己需要的值
直接赋值%0和%1出错率太高
%0打开的是批处理不管怎么打开只要添加进去都是
%1打开的是批处理的参数可以理解成拖拽到批处理的显示添加进去[这个也不是很准确,只是第一个参数的传递]
注册表的意思是当右键到这个文件或是文件夹时就是%1,属于一个非固定的变量值[然而程序无法打开文件夹只能是文件]
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 4# pcl_test


            多谢版主回复!  


有些理解了,不加参数区别明显;但1%和%0还是不知道怎么区分,现在概念就是一样的,没有什么区别,不知道对不对……

因为见到不同的用法,有用%0的,也有用%1的,效果都一样,如下面前两个效果都是一样的
那么哪种情况下用%1合适,哪种情况下用%0合适,还是这两个使用起来没有什么区别?

值%SystemRoot%\system32\NOTEPAD.EXE %0  (用NOTEPAD.EXE 打开1.txt;)
值%SystemRoot%\system32\NOTEPAD.EXE %1  (用NOTEPAD.EXE 打开1.txt;应该用1%)
值%SystemRoot%\system32\NOTEPAD.EXE  (用NOTEPAD.EXE 打开 空白文档.txt)

TOP

都表示传入的参数,%0表示自身,%1表示首个参数,如选中1.txt文件,右键菜单中的“打开”项,对应的是注册表里HKEY_CLASSES_ROOT\txtfile\shell\open\command下的默认项的值%SystemRoot%\system32\NOTEPAD.EXE %1,意思用NOTEPAD.EXE(记事本)打开1.txt,%1即代表1.txt文件,如果把%1去掉,那么打开的将会是空白的记事本,相当于打开一个新建的txt文件

TOP

回复 2# /zhqsystem/zhq


    多谢!

    还不是太懂,我举例中的注册表项,应该是后面不用加那个“0%”或“1%”,效果也是一样的。

TOP

这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

返回列表