Board logo

标题: [注册表类] 注册表中数据中的 %1 和 %0 有什么区别? [打印本页]

作者: doswork    时间: 2016-7-1 17:56     标题: 注册表中数据中的 %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
作者: /zhqsystem/zhq    时间: 2016-7-1 21:38

http://www.bathome.net/redirect. ... amp;goto=nextoldset
作者: doswork    时间: 2016-7-1 22:20

回复 2# /zhqsystem/zhq


    多谢!

    还不是太懂,我举例中的注册表项,应该是后面不用加那个“0%”或“1%”,效果也是一样的。
作者: pcl_test    时间: 2016-7-2 13:45

都表示传入的参数,%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文件
作者: doswork    时间: 2016-7-2 16:44

回复 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)
作者: /zhqsystem/zhq    时间: 2016-7-2 21:53

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

回复 3# doswork
%0和%1用时比较模糊建议用扩展形式取自己需要的值
直接赋值%0和%1出错率太高
%0打开的是批处理不管怎么打开只要添加进去都是
%1打开的是批处理的参数可以理解成拖拽到批处理的显示添加进去[这个也不是很准确,只是第一个参数的传递]
注册表的意思是当右键到这个文件或是文件夹时就是%1,属于一个非固定的变量值[然而程序无法打开文件夹只能是文件]
作者: doswork    时间: 2016-7-2 22:15

回复 6# /zhqsystem/zhq


    多谢指点!

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

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

但注册表中用%1这种好像都是关联一种后缀的打开方式,所有指定后缀的文件用固定程序打开,
值%SystemRoot%\system32\NOTEPAD.EXE %0  (用NOTEPAD.EXE 打开1.txt;)
作者: /zhqsystem/zhq    时间: 2016-7-2 23:56

回复 7# doswork
for /?就会出来了
作者: doswork    时间: 2016-7-3 07:30

回复 8# /zhqsystem/zhq


    多谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2