本部落格(http://blog.csdn.net/livelylittlefish)貼出作者(三二一、小魚)相關研究、學習內容所做的筆記,歡迎廣大朋友指正!
利用WScript.Shell對象隱藏cmd命令列運行
1. WScript.Shell(Windows Script Host Runtime Library)是一個對象,對應的檔案是C:/WINDOWS/system32/wshom.ocx,Wscript.shell是伺服器系統會用到的一種組件。shell 就是“殼”的意思,這個對象可以執行作業系統外殼常用的操作,比如運行程式、讀寫註冊表、環境變數等。這個對象通常被用在VB或VBS編程中。
2. 安裝WScript.Shell對象:regsvr32 WShom.Ocx
卸載WScript.Shell對象:regsvr32 -u WShom.Ocx或者regsvr32 /u WShom.Ocx
3. 例子,假設mytest*.iso檔案均在C:根目錄下。建立mytest目錄,將mytest*.iso檔案拷貝到mytest目錄下。
建立testcopy.bat檔案,存於C:根目錄下。
- md mytest
- copy c:/mytest*.iso mytest
- pause
雙擊testcopy.dat即可看到建立立的mytest目錄及被拷貝的mytest*.iso檔案。
若隱藏cmd命令列視窗,有兩種方法。
(1)建立WScript.Shell對象,由該對象直接運行testcopy.dat檔案,對應的vbs檔案:testcopy1.vbs,雙擊testcopy1.vbs即可看到效果。
- dim objShell
- set objShell=wscript.createObject("WScript.Shell")
- iReturnCode=objShell.Run("c:/testcopy.bat",0,TRUE)
(2)建立WScript.Shell對象,由該對象直接運行dos命令,及testcopy.dat中的命令,對應的vbs檔案:testcopy2.vbs
- dim objShell
- set objShell=wscript.createObject("WScript.Shell")
- iReturnCode=objShell.Run("cmd.exe /c md mytest",0,TRUE)
- iReturnCode=objShell.Run("cmd.exe /c copy c:/mytest*.iso mytest",0,TRUE)