@echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin ::以下為正常批處理命令,不可含有pause set/p等交互命令 ××××××××
解釋: 這個是用 mta 的腳本語言 利用 VBScript 創建了windows 中 wscript.shell該控件,用這個控件里面提供的 run 方法 后臺 運行的這個批處理, mst腳本語言就是相當于 html 應用程序,不管用什么腳本語言,只要能創建 windows系統提供的 wscript.shell這個空間,用這個空間里面的run方法打開 我們也可以用mta腳本語言里面JavaScript一樣能行 @echo off ::批處理隱藏運行 if "%1"=="h" goto begin mshta "javascript:new ActiveXObject('wscript.shell').run('%~nx0 h',0);window.close();"&&exit ::要運行的代碼 :begin echo OK pause>nul mta腳本語言其實和html語言基本一樣,mta腳本語言是用mshta程序解析的,html是用瀏覽器解析的(IE) 建議看下html腳本語言就明白了,這不是用的格式為vbs文件的那個腳本語言,vbs腳本文件是用wscript解析的 只要記住用 用 mshta vbscript:createobject("插件名")(window.close) 這里window.close是那個 mshta 本身里面的方法,就是關閉該程序。 這種格式創建windows提供的插件就行了,插件里面的方法看下文檔就明白了 關于腳本語言不明白的地方可以 HI 我
怎么能夠隱藏批處理的運行窗口
這個不會生成臨時文件(兼容空格路徑的):
@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit :begin rem 下邊開始寫批處代碼了
這段代碼不會閃提示符出來 @echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit :begin rem 下邊開始寫批處代碼了 .....
最后一個: if not "%1"=="h" mshta vbscript:createobject("wscript.shell").run("%~sf0 h %*",0)(window.close)&exit /b shift /1對我有幫助
@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