代碼如下:
@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
)
::從這里開(kāi)始,就是你的批處理代碼了吨拍,DOS黑框一閃而過(guò)鞠柄,轉(zhuǎn)到后臺(tái)運(yùn)行了
pause
::你會(huì)在任務(wù)管理器看到有一個(gè)隱藏窗口的CMD進(jìn)程
運(yùn)行bat時(shí)隱藏cmd窗口的方法
運(yùn)行bat時(shí)隱藏cmd窗口的方法 可以編輯一個(gè)vbs腳本干茉,在其中以隱藏窗口運(yùn)行批處理程序暂衡。
代碼如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 批處理程序名",vbhide
將上面代碼拷貝到記事本中锦茁,保存為"runbat.vbs"或者其它的名字(擴(kuò)展名必須是.vbs),然后點(diǎn)擊運(yùn)行生成的腳本runbat.vbs淋叶,即可隱藏運(yùn)行指定的批處理程序。
這個(gè)vbs腳本也可以在bat環(huán)境中直接調(diào)用伪阶,達(dá)到隱藏bat自身的目的煞檩。
自己總結(jié)一下,做幾個(gè)例子处嫌,有興趣的去試驗(yàn)一下啊!
代碼如下:
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
下面來(lái)幾個(gè)高手整理的
幾種隱藏批處理運(yùn)行窗口的方法 .
(1)通過(guò)批處理命令實(shí)現(xiàn)。缺點(diǎn):會(huì)看到一個(gè)窗口一閃而逝斟湃。優(yōu)點(diǎn):簡(jiǎn)單熏迹,直接添加即可。
代碼如下:
@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腳本實(shí)現(xiàn)隱藏注暗。缺點(diǎn):調(diào)用麻煩點(diǎn)。優(yōu)點(diǎn):基本看不到痕跡(非絕對(duì)的哄酝,指一般用戶(hù))
HideRun.vbs
代碼如下:
CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0
其中D:/test.bat是你的批處理路徑
.....................................................................................................................................
另一思路為把bat轉(zhuǎn)換成vbs友存,然后vbs生成一個(gè)臨時(shí)bat文件,然后WScript.Shell.Run隱藏啟動(dòng)這個(gè)臨時(shí)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
這個(gè)批處理其實(shí)不能使其批處理本身隱藏屡立,但是下面大部分隱藏調(diào)用批處理的原理和基礎(chǔ)。
HideRun.js
代碼如下:
new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0);
用Javascript有什么好處呢搀军?js的字符串變量可以用單引號(hào)膨俐,從而方便命令行作為參數(shù)調(diào)用,而且js很好的支持多行語(yǔ)句用 ; 分隔寫(xiě)成一行罩句。要注意的是:js要區(qū)分大小寫(xiě)焚刺,方法
必須用括號(hào),結(jié)尾必須有分號(hào)门烂。所以就成了下面的命令:
代碼如下:
mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0);window.close()"
通常系統(tǒng)管理員會(huì)向用戶(hù)端推送一些腳本并運(yùn)行乳愉,或者拷貝批處理文件到客戶(hù)端由用戶(hù)自己運(yùn)行。但是大部分腳本在運(yùn)行時(shí)會(huì)彈出黑色背景的DOS窗口屯远,這會(huì)讓不少用戶(hù)不知所
措蔓姚,甚至誤操作關(guān)閉正在運(yùn)行的窗口。好在批處理文件的DOS窗口是可以隱藏的慨丐,以下是幾種隱藏批處理運(yùn)行窗口的方法坡脐。
1.基礎(chǔ)
HideRun.vbs
CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0
其中D:/test.bat是你的批處理路徑
另一思路為把bat轉(zhuǎn)換成vbs,然后vbs生成一個(gè)臨時(shí)bat文件房揭,然后WScript.Shell.Run隱藏啟動(dòng)這個(gè)臨時(shí)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
這個(gè)批處理其實(shí)不能使其批處理本身隱藏,但是下面大部分隱藏調(diào)用批處理的原理和基礎(chǔ)捅暴。
HideRun.js
new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0);
用Javascript有什么好處呢恬砂?js的字符串變量可以用單引號(hào),從而方便命令行作為參數(shù)調(diào)用蓬痒,而且js很好的支持多行語(yǔ)句用 ; 分隔寫(xiě)成一行觉既。要注意的是:js要區(qū)分大小寫(xiě),方法
必須用括號(hào),結(jié)尾必須有分號(hào)瞪讼。所以就成了下面的命令:
mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0);window.close()"
2.用快捷方式
如果要使一個(gè)批處理本身隱藏钧椰,可以參考附件里的一個(gè)快捷方式,修改附件中的相關(guān)路徑即可隱藏啟動(dòng)你的批處理符欠〉障迹可以用vbs來(lái)建立一個(gè) .lnk,其實(shí)用批處理也行(先echo一個(gè)
vbs出來(lái))
3.利用系統(tǒng)服務(wù)
可以建立一個(gè)系統(tǒng)服務(wù)然后啟動(dòng)這個(gè)服務(wù)來(lái)啟動(dòng)批處理希柿。缺點(diǎn)是啟動(dòng)服務(wù)較慢诊沪,需要管理員權(quán)限
runassrv add /cmdline:"C:/Windows/System32/cmd.exe /c D:/test.bat" /name:"mysrv"
net start mysrv
4.利用at計(jì)劃任務(wù)
用at可以建立一個(gè)計(jì)劃任務(wù),在不輸入 /interactive 參數(shù)可以后臺(tái)運(yùn)行曾撤。但是建使用at必須有管理員權(quán)限
at 09:10 "cmd /c D:/Test.bat"
然后在 9:10 系統(tǒng)就會(huì)自動(dòng)后臺(tái)以SYSTEM權(quán)限運(yùn)行這個(gè)bat
5.利用ftype文件關(guān)聯(lián)
ftype batfile=C:/Windows/System32/mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c%1',0);window.close();"
6.其他用戶(hù)
Windows 2k/XP支持多用戶(hù)端姚,如果能在后臺(tái)登陸另一個(gè)賬戶(hù)的桌面然后運(yùn)行一個(gè)批處理,就能完全達(dá)到隱藏的目的
7.編譯成可執(zhí)行文件
不少方法可以實(shí)現(xiàn)挤悉,可以直接利用的工具有 Quick Batch file compiler渐裸。