最小化运行批处理方法一:一般
mode con cols=14 lines=1
if exist "Temp.bat" goto Start
>Temp.bat echo start /min "" "%~nx0"^&exit
start /min Temp.bat&exit
:Start
del "Temp.bat">nul
pause
exit
注释:
假设上面内容被保存在“min.bat”文件中
(1)mode con cols=14 lines=1(这一行可以不要)
设置cmd屏幕缓冲区宽度为14字符,行数为1行
(2)>Temp.bat echo start /min "" "%~nx0"^&exit
在当前目录生成Temp.bat文件,文件内容为“start /min "" "min.bat"&exit”。“^”为转义符,确保可正常把符号“&”写入到文本文件。“%~nx0”在运行时会由其所在的批处理文件的文件名替换(本例中被替换为“min.bat”)。
(3)start /min Temp.bat & exit (由这里开始接下来的命令都在最小化的CMD中执行)
在新的最小化CMD窗口中运行“Temp.bat”并退出一开始运行min.bat的CMD窗口。
(4)Temp.bat最小化调用min.bat
此时Temp.bat已经存在,执行“:Start”行之后的内容。
最小化运行批处理方法二:好
只一行代码,让批处理最小化运行自己
if not "%~1"=="p" start /min cmd.exe /c %0 p&exit
加在任意批处理开头,不过这种代码很危险,我就忘在%0后加个p,结果。。。!
解释一下这段代码的意思:
1.if not "%~1"=="p"——如果此批处理的第一个参数“%~1”不为“p”,则...
2.start /min cmd.exe /c——最小化执行cmd.exe后关闭(为什么要用cmd.exe来间接执行%0?目的是执行不以exit结束的批也能自动退出)
3.%0 p——批处理本身,带参数“p”(任意参数即可)
4.&exit——不用解释了吧!
作用是:最小化运行自身(一次!),本批处理退出,并且不会无限运行!
最小化运行批处理方法三:(好)
@echo off&&mode con cols=15 lines=1 (这句最好不要)
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof
:min
最小化运行批处理方法四:(不太好)
@echo off
if "%1"=="h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
这样可以达到隐藏运行的效果,千万不要用于做坏事啊,但始终都会闪一下cmd窗口.就是刚打开的时候闪一下.
如果要完全隐藏.要通过vbs调用.以下代码另存为.vbs文件:
createobject("wscript.shell").run "你的批处理路径",0