中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 06:20
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 隐藏代码的%1参数怎么理解,有什么用? 查看 1,015 回复 7
楼 主 隐藏代码的%1参数怎么理解,有什么用? 发表于 2010-05-13 22:11 ·  中国 广东 广州 电信
新手上路
积分 4
发帖 4
注册 2010-05-13 00:20
16年会员
UID 166726
性别 男
状态 离线
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

类似的还有:
@echo oFF
if "%1" neq "1" (
>"%temp%\tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%\tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" 1^",0
start /d "%temp%" tmp.vbs
exit
)

请问i这些"%1"的值是怎么来的??又该如何去写这些判断?谢谢!
2 发表于 2010-05-13 23:26 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线
call 或者在命令行调用的时候传入的参数
freedom!
3 发表于 2010-05-14 02:59 ·  中国 广东 广州 电信
新手上路
积分 4
发帖 4
注册 2010-05-13 00:20
16年会员
UID 166726
性别 男
状态 离线
Originally posted by rs369007 at 2010-5-13 23:26:
call 或者在命令行调用的时候传入的参数


代码是加在批处理前直接运行的啊,没有使用CALL和命令行传入。
4 发表于 2010-05-15 00:39 ·  中国 广东 广州 电信
新手上路
积分 4
发帖 4
注册 2010-05-13 00:20
16年会员
UID 166726
性别 男
状态 离线
想学mshta的用法,求高手不吝施教!
5 发表于 2010-05-15 03:38 ·  中国 四川 成都 电信
新手上路
积分 3
发帖 3
注册 2009-08-22 07:21
16年会员
UID 150768
性别 男
状态 离线
我知道%0删除本身
6 发表于 2010-05-16 00:27 ·  中国 浙江 金华 婺城区 电信
新手上路
积分 12
发帖 11
注册 2008-10-13 12:17
17年会员
UID 128246
性别 男
状态 离线
%1 是批处理调用时传递的第一个参数
if "%1" == "h" goto begin
第一次运行时由于没有参数if条件不成立直接运行下一句
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
调用批处理自身,同时把 h 当作参数传递给批处理,运行到这里if条件已经成立,所以会跳到begin运行下面的代码,此时窗口已经是隐藏的了,达到了目的。
我也是菜鸟,对批处理只知道一点点,只能理解这么多了。
7 发表于 2010-05-16 04:41 ·  中国 广东 广州 电信
新手上路
积分 4
发帖 4
注册 2010-05-13 00:20
16年会员
UID 166726
性别 男
状态 离线
已经明白了 ,只想问下mshta怎么写批处理 ,谢谢。
8 发表于 2010-05-16 11:03 ·  中国 浙江 金华 电信
新手上路
积分 12
发帖 11
注册 2008-10-13 12:17
17年会员
UID 128246
性别 男
状态 离线
mshta的用法网上很少资料,需要自己上msdn去查查
论坛跳转: