bat執行時自己隱藏黑框,而不是用vbs來呼叫自己
//autoStart.bat
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
//上面是新增隱藏黑框框的
//下面是需要執行的命令
::auth: linght
::date: 2018-01-09
::system: windows
::auto start windows exe
@set sleepTime=2
@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+0
@if %result% LSS 1 goto reStart
@if %result% equ 1 goto normal
@if %result% gtr 1 goto killExe
@echo off
:restart
echo %exeName% is stop RunNum: %result%, auto start %exeName%
rem start your program
set d=%date:~0,10%
set t=%time:~0,8%
@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
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(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,0,false
Set wshell=Nothing
相關文章
- python 呼叫 cmd 而不顯示黑框的方法Python
- C++ WinExec system 隱藏黑框;清空檔案C++
- 自己動手實現springboot執行時執行java原始碼(執行時編譯、載入、註冊bean、呼叫)Spring BootJava原始碼編譯Bean
- react-router4 跳轉路由如何隱藏元件而不是解除安裝。React路由元件
- 【白話科普】《逆局》最終 boss 隱藏自己的方式是?
- 使用Spring Cloud Gateway隱藏執行時的服務發現SpringCloudGateway
- idea執行時預設顯示自己建立的jsp方法IdeaJS
- 自己動手寫SQL執行引擎SQL
- Java中多執行緒啟動,為什麼呼叫的是start方法,而不是run方法?Java執行緒
- 滑鼠點選區域外 彈框隱藏
- 安利一個自己搞的黑科技
- Java執行緒池核心執行緒用盡後為何優先排隊而不是繼續建立執行緒直至最大執行緒數?Java執行緒
- win10執行bat檔案一閃而過怎麼辦Win10BAT
- 正面剛谷歌蘋果,diss了BAT及友商,商湯科技說自己是一隻“黑羊”谷歌蘋果BAT
- 讓自己強大起來 做自己世界的主人
- 使用Cordova –實現點選手機物理返回鍵時,應用進入後臺執行,而不是直接關閉!
- 自己寫的殺mysql執行緒的指令碼MySql執行緒指令碼
- win10執行框怎麼調出來_win10如何調出執行框Win10
- 故障自愈是不是應該儘可能讓資料庫自己來做資料庫
- js下拉框實現div顯示和隱藏JS
- NordVPN:超過半數的美國人希望設法從網際網路上隱藏自己
- 呼叫JavaCalls::call()方法來執行Java方法Java
- 使用bat指令碼執行MySQL命令時遇到的坑BAT指令碼MySql
- 6.3建立自己執行的二進位制檔案
- Windows 任務計劃隱藏顯示黑視窗Windows
- 信任是自己掙來的
- 寫給未來的自己
- JS引擎、執行時與呼叫棧概述JS
- 死磕 java執行緒系列之自己動手寫一個執行緒池Java執行緒
- 視訊直播app原始碼,軟體主頁向下滑動時隱藏搜尋框APP原始碼
- 輸入框跟隨鍵盤彈出/隱藏移動
- 為什麼執行緒安全的List推薦使用CopyOnWriteArrayList,而不是Vector執行緒
- 時間段時間點自己理解
- 靜態成員函式-this指標沒有指的是沒有給,而不是不能擁有,可以自己給呀函式指標
- 美團一面:Spring Cloud 遠端呼叫為啥要採用 HTTP,而不是 RPC?SpringCloudHTTPRPC
- 為什麼我從 Google 辭職而為自己工作Go
- 來學著寫自己的“jQuery”jQuery
- parseInt 是用於字串,而不是用於數字字串