windows bat批处理 循环执行并最小化

作者&投稿:何复 (若有异议请与网页底部的电邮联系)
批处理如何自动运行程序最小化~

自动最小化代码如下
@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 本身里面的方法,就是关闭该程序。

@echo off%1(start /min cmd.exe /c %0 :&exit)echo 你的代码写在这下面,最小化运行至任务栏。pause

@echo off & title 配置隐藏循环等待执行 By 依梦琴瑶

::设置要执行的程序完整路径
set Exe=C:\y.exe

::设置是否隐藏执行,0 = 隐藏,1 = 不隐藏
set Hdn=0

::设置是否开机自启,1 = 是,0 = 否
set Auto=1

::设置是否立即执行程序,1 = 是,0 = 否
set Now=1

(echo '隐藏循环等待执行 By 依梦琴瑶
echo On Error Resume Next
echo Do
echo     Set Ws = CreateObject^("WScript.Shell"^)
echo     Ws.Run "%Exe%",%Hdn%,True
echo Loop)>"%AppData%\LoopWaitExecution.vbs"

if %Auto% equ 1 (
    reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v LWE_VBS /t REG_SZ /d "\"%AppData%\LoopWaitExecution.vbs\"" /f >nul 2>nul && (
        echo 已设为开机自启
    ) || (
        echo 请使用右键选择管理员身份运行
        pause
        exit
    )
)

if %Now% equ 1 (
    echo 程序已运行
    start "" "%AppData%\LoopWaitExecution.vbs"
)
echo 配置已完成
pause

请在此脚本代码中自行设定参数,保存后直接运行,即可配置开机自启等功能。

请注意,此脚本只是用于配置,不是用来执行程序的,所以不要把该脚本加入到开机自启项目中去。



  1. 后台运行BAT,参考这个帖子。

  2. 这里的空间是缓存空间,即内存空间,非磁盘空间。可指定较大的虚拟内存来解决此问题。设置虚拟内存很简单,自行百度此处不赘述。

  3. 有个令人疑惑的地方,弹出多个窗口,如果不是程序本身的问题,就是x.bat被重复执行。不过既然检测y.exe的存在性来决定X.BAT的执行与否,这样的问题应该不会出现。

现在要确定的两个问题:

  1. 一般a.bat调用b.bat,如果被调用b.bat没有执行exit语句,b.bat运行结束后不会终止进程,这可能是导致空间不足的原因。在任务管理器看是否存在多个CMD进程,并在x.bat结束处加入exit。

  2. 要排除程序导致的多窗口问题,然后排除x.bat是否反复被执行过。




信州区13741972931: 如何让bat脚本循环执行? -
兆蕊卡米: 让bat脚本循环执行有以下两种方法: 第一、可以直接加个%0,即执行本身,实现循环. 第二、用goto命令,去到你要重复的开头,如果要限制次数,可以先set 一个值,循环一次减1,条件命令到0退出,实现循环.若使用goto命令执行循环,有如下代码可供参考: @echo off set n=0 :abc set /a n+=1 if %n%==60 exit goto abc 每次执行n+1,当n=60就退出 进行跳转,之前可以加上判断条件,判断是否跳到开头继续执行

信州区13741972931: bat批处理中怎样用while循环 -
兆蕊卡米: bat 常用命令 echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起

信州区13741972931: 批处理 for循环,可以循环1到N次,请问能不能循环指定的值 -
兆蕊卡米: 批处理 for循环,可以循环1到N次,可以循环指定的值,循环方法为:1、新建一个for.txt文件然后重名成for.bat文件.2、在for.bat输入:echo for循环 所有的脚本语言都一言,一般用echo输出.pause 表示暂停.3、不错从上面的调试结果看,输...

信州区13741972931: 我的BAT批处理为何一直循环???????? -
兆蕊卡米: 在Windows的Command子目录中有一个Start.exe程序,利用它可以打开某个程序或文件,例如在MS-DOS状态下键入startnotepad,回车后直接启动“记事本”程序,要打开Docname.txt文件,则可在DOS命令提示符后键入start Docname.txt;...

信州区13741972931: Windows批处理,a1=1,a2=2,a3=3 bat文件中怎么用循环输出值,比如i=1时输出a1的值,i=2时输出a2的值 -
兆蕊卡米: @echo off&setlocal enabledelayedexpansiona1=1a2=3a3=3for /l %%i in (1,1,3) do (echo i=%%i a%%i=!a%%i!)pause

信州区13741972931: windows bat批处理 循环执行并最小化 -
兆蕊卡米: @echo off & title 配置隐藏循环等待执行 By 依梦琴瑶::设置要执行的程序完整路径 set Exe=C:\y.exe::设置是否隐藏执行,0 = 隐藏,1 = 不隐藏 set Hdn=0::设置是否开机自启,1 = 是,0 = 否 set Auto=1::设置是否立即执行程序,1 = ...

信州区13741972931: 如何运行windows下.bat 批处理文件 -
兆蕊卡米: 对于批处理文件是可以直接运行的,只要使用鼠标双击.bat后缀文件,即可自动运行,无需手动干预.

信州区13741972931: 批处理命令怎么循环扫描? -
兆蕊卡米: 在bat批处理脚本命令中没有while这种命令.如果要实现循环,请使用子标签+goto的方式进行循环.

信州区13741972931: bat批处理文件循环编码是什么?怎么写? 设置一个变量怎么设置啊???急! -
兆蕊卡米: 1:循环就用goto命令就行了!先设置个标签(你可以把它看成路标不让你迷路)为 :lopgoto 就是说去哪个标签!例子::lopstart cmd.exegoto lop就会打开N个cmd.exe程序只到你关闭它! 2:设置变量用set命令!set a=1这句话说------有个变量叫a(你随便搞b c d都行)它的值是1(也是你给的也可以给2 3 4...)要看哪个变量就用echo %a%他就会给你回复1

信州区13741972931: 用bat批处理文件循环运行执行一个文件怎么写? -
兆蕊卡米: @echo off for /l %i in (1,1,10) do ( taskkill /f /im a.exe ping -n 1 127.1>nul)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网