//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. COMSOL

    COMSOL_百度百科 https://baike.baidu.com/item/COMSOL/10943148?fr=aladdin 显著特点 ■ 求解多场问题 = 求解方程组,用户只需选择或者自定 ...

  2. dbclient python ---influxdb -install -relay--http write--read.[create db]

    1s=1000ms 1ms=1000 microseconds 1microsecond=1000 nanoseconds+01:00 from influxdb import InfluxDBCli ...

  3. 适配ipad Pro

    买了个新款ipad pro 11寸的,发现我们的ipad项目. 上下左右都有黑边 使用info.plist设置启动图,不用asset和launch storyboard 图片用如下格式命名,拖到项目中 ...

  4. 新装的Delphi XE10 空白的安卓程序编译报错 F1027 Unit not found: 'System.pas'

    没有安装 安卓的lib 和 PlatformSDKs 把相关压缩包解压缩后,将对应文件夹android放在lib下面 , PlatformSDKs放在D:\Program Files (x86)\Em ...

  5. Appium入门(9)—— Appium API

    摘自:http://www.testclass.net/appium/appium-base-api-01/ 1.安装: installApp() driver.installApp("d: ...

  6. JavaWeb开发如何用Tomcat部署发布

    一.如何安装TomCat 1.1安装包下载地址:https://tomcat.apache.org/download-70.cgi 1.2  安装exe文件,下一步直到安装成功.并启动Tomcat服务 ...

  7. 3.0-uC/OS-III简介(操作系统结构)

    1.OS-III是一个第 3代的系统内核,支持现代的实时内核所期待的大部分功能. 例如资源管理, 同步, 任务间的通信等等.然而, uC/OS-III提供的特色功能在其它的实时内核中是找不到的, 比如 ...

  8. Linux ethtool 命令

    ethtool 是用于查询及设置网卡参数的命令,常见用法如下: 注意:该命令只是临时设置,如果网卡重启就失效了,如果想要永久保存应该配置 /etc/sysconfig/network-scripts/ ...

  9. 火币网API文档——REST 行情、交易API简介

    REST API 简介 火币为用户提供了一套全新的API,可以帮用户快速接入火币PRO站及HADAX站的交易系统,实现程序化交易. 访问地址 适用站点 适用功能 适用交易对 https://api.h ...

  10. 火币网API文档——WebSocket API Reference

    订阅 KLine 数据 market.$symbol.kline.$period 成功建立和 WebSocket API 的连接之后,向 Server 发送如下格式的数据来订阅数据: { " ...