死循环bat脚本,同时运行后自动最小化

某个脚本需要不停的执行,同时运行这个脚本后窗口自动最小化

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",2)(window.close)&&exit
:begin

:start
echo tomcat_profile
call ssh_x.bat
ping 127.0.0.1 -n 5 >nul
goto start

  

如何让批处理文件隐藏运行

if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 
:begin 

如果双击一个批处理,等价于参数为空,而一些应用程序需要参数,比如在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开始运行。
这两行很经典,可以使批处理无窗口运行。

 

下面部分的循环中

关于使用call启动另外一个脚本的命令原因

使用call的原因是调用另一个批处理程序,并且不终止父批处理程序(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)

如果使用start命令替换call的换回每隔秒出现一个新的ssh_x.bat的窗口,并且ssh_x.bat如果没自动关闭的话,运行1天会出现几万个窗口。使用call的会只会有一个窗口存在

 

 参考链接

https://www.cnblogs.com/Braveliu/p/5078283.html

http://blog.csdn.net/lixingshi/article/details/54375460

http://blog.csdn.net/u010913204/article/details/52701291 

  

posted on 2019-03-01 21:43  nmap  阅读(2593)  评论(0编辑  收藏  举报

导航