请教只执行命令而不显示CMD命令提示符窗口

 我来答
奋斗收获在08
推荐于2017-12-16 · TA获得超过1.8万个赞
知道大有可为答主
回答量:5633
采纳率:87%
帮助的人:2918万
展开全部

@echo off 

if "%1"=="h" goto begin 

start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit 

:begin 

这里写命令

 

方法一:

@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开始运行。 
这两行很经典,可以使批处理无窗口运行。

 

方法二:(这个不会生成临时文件(兼容空格路径的):

@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 下边开始写批处代码了 

 

方法四:

@echo off 
start /min 1.bat 

将上面的代码保存为: 2.bat 

之后将你的批处理文件保存为 1.bat,运行之前先打开2.bat,则1.bat就最小化运行了. 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式