批處理隱藏自身窗口,很無(wú)聊
@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ì)的,指一般用戶)
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ǔ)句用 ; 分隔寫成一行。要注意的是:js要區(qū)分大小寫,方法
必須用括號(hào),結(jié)尾必須有分號(hào)。所以就成了下面的命令:
mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0);window.close()"
通常系統(tǒng)管理員會(huì)向用戶端推送一些腳本并運(yùn)行,或者拷貝批處理文件到客戶端由用戶自己運(yùn)行。但是大部分腳本在運(yùn)行時(shí)會(huì)彈出黑色背景的DOS窗口,這會(huì)讓不少用戶不知所
措,甚至誤操作關(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ǔ)句用 ; 分隔寫成一行。要注意的是:js要區(qū)分大小寫,方法
必須用括號(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)你的批處理??梢杂胿bs來(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.其他用戶
Windows 2k/XP支持多用戶,如果能在后臺(tái)登陸另一個(gè)賬戶的桌面然后運(yùn)行一個(gè)批處理,就能完全達(dá)到隱藏的目的
7.編譯成可執(zhí)行文件
不少方法可以實(shí)現(xiàn),可以直接利用的工具有 Quick Batch file compiler。
相關(guān)文章
BAT腳本實(shí)現(xiàn)自動(dòng)IP地址切換?
本文主要介紹了BAT腳本實(shí)現(xiàn)自動(dòng)IP地址切換,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03用replace實(shí)現(xiàn)替換正在使用的文件
用replace實(shí)現(xiàn)替換正在使用的文件...2006-12-12批處理(bat)命令學(xué)習(xí)的一些總結(jié)
這篇筆記是我對(duì)批處理學(xué)習(xí)的一些總結(jié),能在系統(tǒng)幫助里找到的內(nèi)容我就不寫了,太偏門的也不寫,只寫些個(gè)人感覺(jué)很好用的技巧,大部分屬于整理2014-07-07用批處理實(shí)現(xiàn)禁止運(yùn)行指定程序
原理就是通過(guò)修改注冊(cè)表來(lái)實(shí)現(xiàn)的,HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options2008-08-08一個(gè)命令行(批處理)延遲執(zhí)行命令的語(yǔ)法
一個(gè)命令行(批處理)延遲執(zhí)行命令的語(yǔ)法...2007-09-09Chkdsk 基于所用的文件系統(tǒng),創(chuàng)建和顯示磁盤的狀態(tài)報(bào)告
Chkdsk 基于所用的文件系統(tǒng),創(chuàng)建和顯示磁盤的狀態(tài)報(bào)告...2007-09-09