如何让批处理程序启动的时候最⼩化
复制代码代码如下:
@echo off
shell代码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下⾯都可以起到隐藏执⾏的效果,(code标签后就是要隐藏执⾏的任务)
两句代码的思路相同,实现⼿段不同.请细细体味:
if "%1"=="h" (goto code) else (mshta vbscript:createobject^("wscript.shell"^).run^("%~fs0 h",0^)^(window.close^)&exit)
if exist #hide.vbs (del #hide.vbs &goto code) else (echo createobject^("wscript.shell"^).run "%~fs0",0 >#hide.vbs&start
#hide.vbs&exit)
这段代码不会闪提⽰符出来
@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
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
如果双击⼀个批处理,等价于参数为空,⽽⼀些应⽤程序需要参数,⽐如在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开始运⾏。这两⾏很经典,可以使批处理⽆窗⼝运⾏。
另外做个批处理程序来调⽤即将执⾏的批处理⽂件,
我的⽅法是:
复制代码代码如下:
@echo off
start /min  1.bat
将上⾯的代码保存为: 2.bat
之后将你的批处理⽂件保存为 1.bat,运⾏之前先打开2.bat,则1.bat就最⼩化运⾏了.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。