标题:
[注册表类]
注册表中数据中的 %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://bbs.bathome.net/)
Powered by Discuz! 7.2