1. 程式人生 > >cmd視窗隱藏

cmd視窗隱藏

@echo off
if “%1”==“h” goto begin
start mshta vbscript:createobject(“wscript.shell”).run("""%~nx0"" h",0)(window.close)&&exit
:begin
::以下為正常批處理命令,不可含有pause set/p等互動命令

如果雙擊一個批處理,等價於引數為空,而一些應用程式需要引數,比如在cmd視窗輸入shutdowm -s -t 0,其中-s -t 0就為引數。shutdown為%0,-s為%1,-t為%2,以此類推。
第一行我們先跳過,看第二行,表示利用mshta建立一個vbs程式,內容為:createobject(“wscript.shell”).run(……).如果執行的批處理名為a.bat,在C:\下,那%0代表C:\a.bat,%~nx0代表a.bat。h極為引數%1,0表示隱藏執行。由於你雙擊執行,故第一次批處理%1為空,if不成立,轉而執行下一句。然後再次開啟自己,並傳遞引數h,此時if成立,跳轉至begin開始執行。
這兩行很經典,可以使批處理無視窗執行。
使用說明:
如有一個xxx.exe的cmd視窗程式,想要讓它隱藏執行
1、新建一個 1.bat 內容如下:

@echo off
if “%1”==“h” goto begin
start mshta vbscript:createobject(“wscript.shell”).run("""%~nx0"" h",0)(window.close)&&exit
:begin
xxx.exe
2、雙擊1.bat,這樣xxx.exe就會默默的運行了