如何让批处理文件隐藏运行
如何让批处理文件隐藏运行
if "%1" == "h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
tasklist|find /i "java.exe"
if %errorlevel%==0 (
taskkill /f /im "java.exe"
)
java org.objectweb.rmijdbc.RJJdbcServer
如果双击一个批处理,等价于参数为空,而一些应用程序需要参数,比如在cmd窗口输入shutdowm -s -t 0,其中-s -t 0就为参数。shutdown为%0,-s为%1,-t为%2,以此类推。
第一行我们先跳过,看第二行,表示利用mshta创建一个vbs程序,内容为:createobject("wscript.shell").run(……).如果运行的批处理名为a.bat,在C:\下,那%0代表C:\a.bat,%~nx0代表a.bat。h即为参数%1,0表示隐藏运行。由于你双击运行,故第一次批处理%1为空,if不成立,转而运行下一句。然后再次打开自己,并传递参数h,此时if成立,跳转至begin开始运行。
这两行很经典,可以使批处理无窗口运行。

浙公网安备 33010602011771号