//autoStart.bat
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",)(window.close)&&exit
:begin
//上面是添加隐藏黑框框的
//下面是需要执行的命令
::auth: linght
::date: --
::system: windows
::auto start windows exe @set sleepTime=
@set exeName=center_flextrbo.exe
@set logPath=%~dp0 @REM exePath "C:\Program Files (x86)\Jiketong\simpleTrbo\center\"
@set exePath=%logPath:centerAutoRestart=center%
@set runLogPath="%exePath%runLog.log" :loop
@set aTxtfilePath="%logPath%a.txt"
@tasklist | findstr %exeName% > %aTxtfilePath%
@for /f "tokens=3 delims=:" %%a in (' find /c /v "" %aTxtfilePath% ') do @set/a result=%%a+
@if %result% LSS goto reStart
@if %result% equ goto normal
@if %result% gtr goto killExe @echo off
:restart
echo %exeName% is stop RunNum: %result%, auto start %exeName%
rem start your program
set d=%date:~,%
set t=%time:~,%
@set startTxtfilePath="%logPath%start.log"
echo %d% %t%: start /b /d %exePath% %exeName% >> %startTxtfilePath%
REM start /b /d "%exePath%" %exeName% | tee %runLogPath%
ping 0.0.0.0 -n %sleepTime% > "%logPath%null"
start /b /d "%exePath%" %exeName%
> %runLogPath%
@goto sleep :normal
rem echo %exeName% is normal runing...... RunNum: %result%
@goto sleep :killExe
echo %exeName% is running, RunNum: %result%, too mush, kill and restart
taskkill /f /im %exeName% /t
echo auto restart %exeName%
goto reStart
@goto sleep
@echo on :sleep
@echo off
rem sleep 10s
ping 0.0.0.0 -n %sleepTime% > "%logPath%null"
goto loop
echo on :over

这个方法相当巴适,比用vbs调用bat来隐藏黑框框棒多了。

其实,vbs调用bat来隐藏黑框框也还是可以的,不过呢,我遇到的场景是:我用vbs(如:autoStart.bat)调用bat(如:autoStart.bat)来隐藏黑框框。

但是呢,我的bat(如:autoStart.bat)需要增加授予管理员权限运行(看此链接),以便PC机任何用户登录都可以正确的执行。但是呢,我把授权的几行命令加在当前bat最上头的时候啊,bat内部调用程序就变成找不到文件(如上面加粗并标红的start命令)。

这个就恼火了,因为同样的授予管理员权限方式,别的bat(如:start_mysql.bat)就可以好好的运行。

这下啷个办呢,就把授权的命令,单独的保存为一个bat(如:grantAdmin.bat),然后在grantAdmin.bat里调用我的bat(autoStart.bat)。还是用vbs调用bat来隐藏黑框框(如:autoStart.vbs调用grantAdmin.bat)。问题来了,grantAdmin.bat的黑框框确是被隐藏了,autoStart.bat的黑框并没有隐藏,说以啊,在网上找啊找,寻寻觅觅两天时间,终于搞定,那就是用当前这边文章的方法来隐藏黑框框。棒的很。

//grantAdmin.bat
@ echo off
% %
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",)(window.close)&goto :eof
:Admin
start autoStart.bat
//autoStart.vbs
public const vbQuote=""""
temp="C:\A_WORK\Release_D1.1.11\SimpleTrbo_Release1012\centerAutoRestart\grantAdmin.bat"
batPath=vbQuote & temp & vbQuote
Set wshell=CreateObject("WScript.Shell")
wshell.Run batPath,,false
Set wshell=Nothing

谢谢你阅读

[小花儿送给你]

bat运行时自己隐藏黑框,而不是用vbs来调用自己的更多相关文章

  1. vbs调用bat 隐藏bat运行时的黑框

    //新建文本文件 ,保存为后缀为bat.如:startBAT.vbs public const vbQuote="""" temp="C:\A_WOR ...

  2. 《Effective C#》读书笔记-1.C# 语言习惯-2.使用运行时常量(readonly)而不是编译时常量(const)

    概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识 ...

  3. bat运行时不弹出那个黑框框的完美解决方案

    批处理文件运行时经常出现讨厌的黑框,以下的方法,即可以解决 保存为run.vbs运行即可:   set ws = createobject("wscript.shell") ws. ...

  4. 【python基础】python程序打包成.exe运行时会弹出黑框

    用python调用.bat或者.exe文件时,一般调用 方式如下: os.system("C:\Windows\System32\osk.exe") 对吧,这样就会因为调用了系统s ...

  5. word保存时标题变成黑框(mac版本)

    参考:http://blog.sina.com.cn/s/blog_686020310101i2zu.html 参考文档中说的时windows版本的word,跟我mac处理方式有一些不同: word版 ...

  6. iOS开发小技巧--利用运行时得到隐藏的成员变量

    一.关于运行时,已经从网络上摘抄了一片文章,这里只有项目中自己的简单使用 -- 查找隐藏的成员变量 导入头文件 可以获得隐藏的成员变量,方法,属性等 代码: 打印效果图:

  7. 去除FineReport报表点击单元格时出现的黑框

    选择模版->模版web属性 添加加载结束事件,具体代码如下 $("td").bind("click",function(){return false;}) ...

  8. bat批处理文件运行时隐藏cmd窗口

    想让bat运行时隐藏cmd窗口,最好的方法是使用vbs文件实现, 1.新建一个文本文档,改名为123.vbs,编辑内容: set ws=WScript.CreateObject("WScri ...

  9. Android M Permission 运行时权限 学习笔记

    Android M Permission 运行时权限 学习笔记 从Android 6.0开始, 用户需要在运行时请求权限, 本文对运行时权限的申请和处理进行介绍, 并讨论了使用运行时权限时新老版本的一 ...

随机推荐

  1. [No0000177]详解/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途

    之前安装Linux的一些软件时,总要修改Linux的配置文件.当时也是一知半解.而且,网上有些安装教程,会说,修改配置文件后要重启Linux.但事实上是不需要重启的. Linux安装时可能要修改的配置 ...

  2. 主从读写分离----mysql-proxy0.8.5安装与配置

    废话不多说,直接开干: 1.安装环境: yum -y install libevent glib2 lua gcc gcc-c++ autoconf mysql-devel libtool pkgco ...

  3. vue $set的使用

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: 当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新 ...

  4. nginx url问题

    测试需求,url自动加/后,发现重定向不带端口,即为 test.a.com:3443/abc  nginx自动重定向301到 test.a.com/abc,端口消失. 分析可能和nginx默认配置se ...

  5. 变长编码表 ASCII代码等长编码

    小结: 1.ASCII编码.GBK编码不是变长编码: 2.数据压缩: 示例: aabacdab → 00100110111010 → |0|0|10|0|110|111|0|10| → aabacda ...

  6. URL地址中的#

    1.#的涵义 代表网页中的一个位置.井号后面的字符,就是该位置的标识符.比如, http://www.baidu.com/index.html#one 就代表网页index.html的one位置.浏览 ...

  7. c# http get post转义HttpUtility.UrlEncode

    //该数据如果要http get.post提交,需要经过转义,否则该数据中含& ''等字符会导致意外错误.需要转义.这里用HttpUtility.UrlEncode来转义.接收方无需反解析 s ...

  8. [development][http][libhtp] suricata的http库--libhtp

    首先,从文档来看, 它支持管道化的http, 也可以说过于重量级. 其次, 还没有达到产品化的稳定性. 并不是完全对应我的需求, http模块是一个整体性能相关模块. 应该按需定制更合理. 但是,功能 ...

  9. Flink – process watermark

    WindowOperator.processElement 主要的工作,将当前的element的value加到对应的window中, windowState.setCurrentNamespace(w ...

  10. LeetCode 905 Sort Array By Parity 解题报告

    题目要求 Given an array A of non-negative integers, return an array consisting of all the even elements ...