運行bat隱藏cmd視窗

來源:互聯網
上載者:User

 

start/wait

---------------------------------------------------------------------------------------------------------==============

可以編輯一個vbs指令碼,在其中以隱藏視窗運行批次程式。  

------------------------------------------------------------  

Set ws = CreateObject("Wscript.Shell")  
ws.run "cmd /c 批次程式名",vbhide  
------------------------------------------------------------  

將水平線中代碼拷貝到記事本中,儲存為"runbat.vbs"或者其它的名字(副檔名必須是.vbs),然後點擊運行產生的指令碼runbat.vbs,即可隱藏運行指定的批次程式。

這個vbs指令碼也可以在bat環境中直接調用,達到隱藏bat自身的目的。  

Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
WScript.Sleep(0000)
Wsh.Run "sihochina.bat",0,True
'其中sihochina.bat即為你要啟動並執行批處理命令,此時英語這個VBS指令碼放在同一目錄下
Set Wsh=NoThing
WScript.quit
====================================================
代碼二:
====================================================
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C d:\sihochina.bat", 0, TRUE)
'其中d:\sihochina.bat即為你要啟動並執行批處理命令

-----------------------------------------------------------------------------------------------------------------------------========================

可以編輯一個vbs指令碼,在其中以隱藏視窗運行批次程式。   

------------------------------------------------------------   
Set ws = CreateObject("Wscript.Shell")   
ws.run "cmd /c 批次程式名",vbhide   
------------------------------------------------------------   

將水平線中代碼拷貝到記事本中,儲存為"runbat.vbs"或者其它的名字(副檔名必須是.vbs),然後點擊運行產生的指令碼runbat.vbs,即可隱藏運行指定的批次程式。

這個vbs指令碼也可以在bat環境中直接調用,達到隱藏bat自身的目的。   

批處理隱藏啟動並執行10種思路

1.基礎

HideRun.vbs
--------------------------------------------------------------------------------
CreateObject("WScript.Shell").Run "cmd /cD:\test.bat",0
其中D:\test.bat是你的批處理路徑

HideRun.bat
--------------------------------------------------------------------------------
echo CreateObject("WScript.Shell").Run "cmd /cD:\test.bat",0>$tmp.vbs
cscript.exe /e:vbscript $tmp.vbs
del $tmp.vbs
這個批處理其實不能使其批處理本身隱藏,但是下面大部分隱藏調用批處理的原理和基礎。

HideRun.js
--------------------------------------------------------------------------------
new ActiveXObject('WScript.Shell').Run('cmd /cD:\Test.bat',0);
用Javascript有什麼好處呢?js的字串變數可以用單引號,從而方便命令列作為參數調用,而且js很好的支援多行語句用 ; 分隔寫成一行。要注意的是:js要區分大小寫,方法必須用括弧,結尾必須有分號。所以就成了下面的命令:
--------------------------------------------------------------------------------
mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /cD:\test.bat',0);window.close()"

2.用捷徑

如果要使一個批處理本身隱藏,可以參考附件裡的一個捷徑,修改附件中的相關路徑即可隱藏啟動你的批處理。可以用vbs來建立一個 .lnk,其實用批處理也行(先echo一個vbs出來)

3.利用系統服務

可以用sc建立一個系統服務然後啟動這個服務來啟動批處理。缺點是啟動服務較慢,需要管理員權限
查考這個文章,
http://www.cn-dos.net/forum/view ... =%E6%9C%8D%E5%8A%A1
asbai 兄的大作,極大的方便了我們的使用。
CODE:   [Copy to clipboard]
--------------------------------------------------------------------------------

runassrv add /cmdline:"C:\Windows\System32\cmd.exe /cD:\test.bat" /name:"mysrv"
net start mysrv
4.利用at計劃任務

用at可以建立一個計劃任務,在不輸入 /interactive 參數可以後台運行。但是建使用at必須有管理員權限
CODE:   [Copy to clipboard]
--------------------------------------------------------------------------------

at 09:10 "cmd /cD:\Test.bat"
然後在 9:10 系統就會自動後台以SYSTEM許可權運行這個bat

5.利用ftype檔案關聯

綜合上面的技術,使所有批處理都隱藏運行
CODE:   [Copy to clipboard]
--------------------------------------------------------------------------------

ftype batfile=C:\Windows\System32\mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c%1',0);window.close();"
大家可以討論下下面的思路,目前沒有明確的方法,但是理論上是可行的

6.rundll32

其實這個方法只是理論上估計的,這裡提出來佔個位置,留個記號,等待高手研究
rundll32可以調用 dll 裡的API,如果有個dll可以隱藏run一個exe就可以實現隱藏啟動批處理,呵呵。目前我也沒找到方法。

7.其他使用者

Windows 2k/XP支援多使用者,如果能在後台登陸另一個賬戶的案頭然後運行一個批處理,就能完全達到隱藏的目的

8.bat2vbs

這個方法只是一個不是很成熟的思路。
查考這個文章:
http://www.cn-dos.net/forum/view ... p;highlight=exe2bat
這使我們產生了一個想法:把bat轉換成vbs,然後vbs產生一個臨時bat檔案,然後WScript.Shell.Run隱藏啟動這個臨時bat

9. .NET編譯

參考這個文章:
http://www.cn-dos.net/forum/view ... hlight=script%2Bnet
裡面提到了一個 .NET Warpper,我們完全可以利用系統內建的組件把bat編譯到 exe 當中。如果bat不涉及互動,exe自然就安靜的運行了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.