标题: 隐藏代码的%1参数怎么理解,有什么用?
[打印本页]
作者: OsOcmd
时间: 2010-5-13 22:11
标题: 隐藏代码的%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"的值是怎么来的??又该如何去写这些判断?谢谢!
作者: rs369007
时间: 2010-5-13 23:26
call 或者在命令行调用的时候传入的参数
作者: OsOcmd
时间: 2010-5-14 02:59
Quote: |
Originally posted by rs369007 at 2010-5-13 23:26:
call 或者在命令行调用的时候传入的参数 |
|
代码是加在批处理前直接运行的啊,没有使用CALL和命令行传入。
作者: OsOcmd
时间: 2010-5-15 00:39
想学mshta的用法,求高手不吝施教!
作者: arrowsang
时间: 2010-5-15 03:38
我知道%0删除本身
作者: flyghost
时间: 2010-5-16 00:27
%1 是批处理调用时传递的第一个参数
if "%1" == "h" goto begin
第一次运行时由于没有参数if条件不成立直接运行下一句
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
调用批处理自身,同时把 h 当作参数传递给批处理,运行到这里if条件已经成立,所以会跳到begin运行下面的代码,此时窗口已经是隐藏的了,达到了目的。
我也是菜鸟,对批处理只知道一点点,只能理解这么多了。
作者: OsOcmd
时间: 2010-5-16 04:41
已经明白了 ,只想问下mshta怎么写批处理 ,谢谢。
作者: flyghost
时间: 2010-5-16 11:03
mshta的用法网上很少资料,需要自己上msdn去查查