溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

批處理如何隱藏自身窗口

發(fā)布時(shí)間:2021-10-08 11:30:46 來源:億速云 閱讀:569 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)批處理如何隱藏自身窗口,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

代碼如下:

@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黑框一閃而過,轉(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



下面來幾個(gè)高手整理的

幾種隱藏批處理運(yùn)行窗口的方法 .
(1)通過批處理命令實(shí)現(xiàn)。缺點(diǎn):會(huì)看到一個(gè)窗口一閃而逝。優(yōu)點(diǎ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很好的支持多行語句用 ; 分隔寫成一行。要注意的是: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很好的支持多行語句用 ; 分隔寫成一行。要注意的是: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來建立一個(gè) .lnk,其實(shí)用批處理也行(先echo一個(gè)
vbs出來)
3.利用系統(tǒng)服務(wù)
可以建立一個(gè)系統(tǒng)服務(wù)然后啟動(dòng)這個(gè)服務(wù)來啟動(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)于“批處理如何隱藏自身窗口”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI