關於運行批處理有黑框的問題,想去除黑框有三個方法.
第一個:
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