bat執行時自己隱藏黑框,而不是用vbs來呼叫自己

2021-10-10 21:32:05 字數 2916 閱讀 2546

@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\******trbo\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的黑框並沒有隱藏,說以啊,在網上找啊找,尋尋覓覓兩天時間,終於搞定,那就是用當前這邊文章的方法來隱藏黑框框。棒的很。

@ echo off

%1 %2

ver|find "5.">nul&&goto :admin

:admin

start autostart.bat

public const vbquote=""""

temp="c:\a_work\release_d1.1.11\******trbo_release1012\centerautorestart\grantadmin.bat"

batpath=vbquote & temp & vbquote

set wshell=createobject("wscript.shell")

wshell.run batpath,0,false

set wshell=nothing

windows隱藏python執行時的終端

from 摘要 windows上如果想執行一些常駐程序,使用python需要開啟終端,容易誤操作關掉。本文介紹一種在後台啟動的解決方法,其實核心功能很簡單,使用 start pythonw py 進行,附加一些常用的運維批處理指令碼 start.bat stop.bat restart.bat st...

C語言執行時進行視窗隱藏

c語言編寫的程式,怎樣隱藏執行,不彈cmd視窗 1 呼叫system函式時用start的 b引數,system start b ping 10.10.10.11 t 即可隱藏視窗。2 system函式 原型 int system const char command 功能 執行 dos window...

如何讓基於對話方塊的程式執行時隱藏介面

有些時候需要不讓對話方塊在執行時顯示出來,用showwindow的方法會有閃動現象,我認為最好的方法是用create.具體過程如下 lg dlg 然後在initinstance 中將原來的 int nresponse dlg.domodal if nresponse idok else if nre...