批處理隱藏自身DOS黑框窗口方法.另加最低延時啓動

關於運行批處理有黑框的問題,想去除黑框有三個方法.
第一個:
set ws=wscript.createobject("wscript.shell")

ws.Run "cmd /c copy \\192.168.0.249\網絡遊戲\壁紙同步\維護通道.bat C:\ /y",0,1

ws.Run "c:\維護通道.bat",0,1

wscript.sleep 1000

WScript.quit

這是通過VBS將遠程服務器上的"維護通道.bat"複製到本地C盤.運行後延時一秒退出

第二個:
@echo off
if "%1" neq "Orz" (
>"%temp%\tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%\tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" Orz^",0,true
start /d "%temp%" tmp.vbs"
exit

)
::從這裏開始,就是你的批處理代碼了,DOS黑框一閃而過,轉到後臺運行了
pause
::你會在任務管理器看到有一個隱藏窗口的CMD進程

優點:這是直接運用批處理來隱藏自身,隱藏窗口速度快
缺點:需要在temp文件夾建立一個VBS

第三個:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
這後面寫你需要運行的命令!
""
優點:這是直接運用批處理來隱藏自身,不需要在temp文件夾建立一個VBS
缺點:隱藏窗口速度慢,感覺會小卡一下

本機最低延時批處理
維護通道用
批處理:boot.bat

以下爲引用的內容:
@echo off
:loop
ping 127.0.0.1 -n 2 & if not exist \\192.168.0.251\2008boot$ goto loop
call \\192.168.0.251\2008boot$\boot.bat
exit

vbs:boot.vbs

以下爲引用的內容:
Set shell = Wscript.createobject("wscript.shell")
a = shell.run ("boot.bat",0)

vbs的作用是防止啓動bat的時候出現黑框

批處理會每隔大約2秒檢查一次服務器目錄\\192.168.0.251\2008boot$ (這個改成你自己 的),如果存在就啓動,不存在就繼續檢查,至到存在爲止。

總結一下可以直接使用批處理隱藏自身黑框加最低延時啓動

@echo off
if "%1" neq "Orz" (
>"%temp%\tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%\tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" Orz^",0,true
start /d "%temp%" tmp.vbs"
exit

)
::批處理代碼開始
@echo off
:loop
ping 127.0.0.1 -n 2 & if not exist \\192.168.0.251\2008boot$ goto loop
call \\192.168.0.251\2008boot$\boot.bat
exit

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章