代碼如下:
@echo oFF
::code by LZ-MyST QQ:8450919 BLOG:http://hi.baidu.com/lzmyst http://www.clxp.net.cn
if "%1" neq "1" (
>"%temp%/tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%/tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" 1^",0
start /d "%temp%" tmp.vbs
exit
)
::從這里開始,就是你的批處理代碼了,DOS黑框一閃而過,轉到后臺運行了
pause
::你會在任務管理器看到有一個隱藏窗口的CMD進程
運行bat時隱藏cmd窗口的方法
運行bat時隱藏cmd窗口的方法 可以編輯一個vbs腳本,在其中以隱藏窗口運行批處理程序。
代碼如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 批處理程序名",vbhide
將上面代碼拷貝到記事本中,保存為"runbat.vbs"或者其它的名字(擴展名必須是.vbs),然后點擊運行生成的腳本runbat.vbs,即可隱藏運行指定的批處理程序。
這個vbs腳本也可以在bat環境中直接調用,達到隱藏bat自身的目的。
自己總結一下,做幾個例子,有興趣的去試驗一下啊!
代碼如下:
Set ws = CreateObject("Wscript.Shell")
wscript.sleep 1200 ws.run "cmd /c start winrar.exe",vbhide
wscript.sleep 2200 ws.run "cmd /c start msimn.exe",vbhide
wscript.sleep 1200 ws.run "cmd /c start iexplore.exe",vbhide
下面來幾個高手整理的
幾種隱藏批處理運行窗口的方法 .
(1)通過批處理命令實現。缺點:會看到一個窗口一閃而逝。優點:簡單,直接添加即可。
代碼如下:
@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
::以下為正常批處理命令,不可含有pause set/p等交互命令
pause
(2)利用vbs腳本實現隱藏。缺點:調用麻煩點。優點:基本看不到痕跡(非絕對的,指一般用戶)
HideRun.vbs
代碼如下:
CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0
其中D:/test.bat是你的批處理路徑
.....................................................................................................................................
另一思路為把bat轉換成vbs,然后vbs生成一個臨時bat文件,然后WScript.Shell.Run隱藏啟動這個臨時bat。
HideRun.bat
代碼如下:
echo CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbs
cscript.exe /e:vbscript $tmp.vbs
del $tmp.vbs
這個批處理其實不能使其批處理本身隱藏,但是下面大部分隱藏調用批處理的原理和基礎。
HideRun.js
代碼如下:
new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0);
用Javascript有什么好處呢?js的字符串變量可以用單引號,從而方便命令行作為參數調用,而且js很好的支持多行語句用 ; 分隔寫成一行。要注意的是:js要區分大小寫,方法
新聞熱點
疑難解答