中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 07:18
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 隐藏代码的%1参数怎么理解,有什么用?
可打印版本  1,016 / 7
第1楼 OsOcmd 发表于 2010-05-13 22:11
新手上路 发帖 4 积分 4
隐藏代码的%1参数怎么理解,有什么用?
@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楼 rs369007 发表于 2010-05-13 23:26
初级用户 发帖 131 积分 147
call 或者在命令行调用的时候传入的参数
第3楼 OsOcmd 发表于 2010-05-14 02:59
新手上路 发帖 4 积分 4
Originally posted by rs369007 at 2010-5-13 23:26:
call 或者在命令行调用的时候传入的参数


代码是加在批处理前直接运行的啊,没有使用CALL和命令行传入。
第4楼 OsOcmd 发表于 2010-05-15 00:39
新手上路 发帖 4 积分 4
想学mshta的用法,求高手不吝施教!
第5楼 arrowsang 发表于 2010-05-15 03:38
新手上路 发帖 3 积分 3
我知道%0删除本身
第6楼 flyghost 发表于 2010-05-16 00:27
新手上路 发帖 11 积分 12
%1 是批处理调用时传递的第一个参数
if "%1" == "h" goto begin
第一次运行时由于没有参数if条件不成立直接运行下一句
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
调用批处理自身,同时把 h 当作参数传递给批处理,运行到这里if条件已经成立,所以会跳到begin运行下面的代码,此时窗口已经是隐藏的了,达到了目的。
我也是菜鸟,对批处理只知道一点点,只能理解这么多了。
第7楼 OsOcmd 发表于 2010-05-16 04:41
新手上路 发帖 4 积分 4
已经明白了 ,只想问下mshta怎么写批处理 ,谢谢。
第8楼 flyghost 发表于 2010-05-16 11:03
新手上路 发帖 11 积分 12
mshta的用法网上很少资料,需要自己上msdn去查查
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023