轉自:http://itindex.net/detail/38012-bat-%E6%B5%8F%E8%A7%88%E5%99%A8-%E7%A8%8B%E5%BA%8F
在電腦啟動時或者設置時間時運行指定的程序很容易實現。但是有時候還需要運行時不顯示主界面,隱藏到后台運行。比如:開機時一段Bat批處理執行刪除默認共享; 開機自動運行瀏覽器隱藏到后代打開指定網頁等,希望所有的操作對用戶都是不可見的。如果你也有這樣的需求,這里我收集了幾個讓批處理、瀏覽器等程序隱藏到運行的方法或許可以幫到你。
- 方法一: HideRun.vbs腳本文件
代碼:CreateObject("WScript.Shell").Run "cmd /c D:test.bat",0
把以上代碼復制到文本文件中,保存為.vbs文件(比如 HideRun.vbs),其中 D:test.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
或者:
mshta vbscript:CreateObject("WScript.Shell").Run("iexplore http://luckerme.com",0)(window.close)
以上代碼選一個復制到文本文件中,修改自定義的內容保存為.bat文件(比如 HideRun.bat)。
- 方法三: HideRun.js文件
代碼:
new ActiveXObject('WScript.Shell').Run('cmd /c D:Test.bat',0);
把以上代碼復制到文本文件中,保存為.js文件(比如 HideRun.js)。Javascript的字符串變量可以用單引號,從而方便命令行作為參數調用,而且js很好的支持多行語句用 ; 分隔寫成一行。要注意的是:js要區分大小寫,方法必須用括號,結尾必須有分號。所以寫成命令行就是:
mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:test.bat',0);window.close()"
- 方法四: 使用系統服務
代碼:
runassrv add /cmdline:"C:WindowsSystem32cmd.exe /c D:test.bat" /name:"myservicesname" net start myservicesname
可以用sc建立一個系統服務然后啟動這個服務來啟動批處理。缺點是啟動服務較慢,需要管理員權限。
- 方法五: 使用at計划任務
代碼:
at 09:00 "cmd /c D:Test.bat"
用at可以建立一個計划任務,在不輸入 /interactive 參數可以后台運行。使用at必須有管理員權限。然后在系統就會自動后台以SYSTEM權限運行這個bat。
- 方法六:使用第三方軟件
今天搜索時找到了一款名為HOU任務計划(OnTimer.exe)的定時/循環執行任務的綠色小軟件。軟件雖小,功能很大。可以用來定時執行程序、DOS命令、從HTTP服務器下載程序運行、結束進程、模擬按鍵、發送EMAIL、網絡喚醒、消息提示、關機、重啟、注銷、鎖定、待機等操作。其中普通運行、參數運行、 執行DOS “備注”開頭為“-h”則隱藏執行,即可滿足我們的需求。相信的介紹及下載可以到軟件的官方頁面: http://www.yryz.net/soft-OnTimer.htm
上邊五種方法簡單方便,都是系統的功能,無需額外的軟件。但是,自己創建的bat,vbs文件可能會被殺毒軟件誤報誤刪,所有設置好后最好手動加入到殺毒軟件的信任列表。目前我使用的是最后一種方法,借助OnTimer.exe這個小軟件,配置方便。而且,加入啟動項后,360檢查開機項目時不會提示禁止,在系統檢查修復界面也不會檢測到非安全項。其他殺軟未測試。你可以都測試下,采用適合的方法實現隱藏運行程序的功能。