[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理如何最小化调用自身?

怎样才能让批处理最小化运行呢?我知道利用vbs可以让它后台。也知道批处理自身有一个命令是start /min
可是,问题来了:
  1. start /min %0
  2. @echo off
  3. start /w 123.exe
  4. start 234.exe
  5. exit
复制代码
我的原意是想让本批处理最小化运行后退出。可是,这样写是不对的。直接利用start /min %0 调用自身,发现它只是调用了一个空的窗口最小化在下面,而且它还不会自动退出。求各位大侠解决!不胜感激啊!
师者,传道,授业,解惑也!
各位大师!指点迷津啊!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

怎么没有人理我?孤星大大呢?

TOP

因为你没有添加判断,命令循环重复执行了,而没有退出来。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 3# cjiabing


    大大,加了也没有用啊!不然,大大把代码贴出来,我试试……

TOP

回复 4# lijinpengying


    那就是没加对。代码贴出来,大家帮你改改。

TOP

回复 5# gawk

@echo off &color 1f&title shiyan
if exist %0 start /min %0
@echo off
start /w 123.exe
start 234.exe
exit
其实我就是想达到最小化运行这个程序,运行完毕后退出。不要用vbs把它后台哈!
我今天做了很多实验,就是不能达到我要的效果。
这样写的代码,总是有一个窗口最小化在下面。不会自动退出。这个窗口就是这个批处理。

TOP

本帖最后由 yangfengoo 于 2012-5-4 21:06 编辑

start /w 123.exe
start 234.exe

start /w 123.exe要这个执行结束,才会退出 去掉/w

TOP

  1. @echo off
  2. if  "%~1"=="" start /min %0 run
  3. ::接收命令参数,如果没有参数则运行自身,否则进行下一步
  4. start /w 123.exe
  5. ::start /w 会等待123.exe结束后才运行下一行命令
  6. start 234.exe
  7. exit
复制代码
1

评分人数

寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 1# lijinpengying


    版主让你判断的是位置参数%1

TOP

1,没考虑到 %0 含双引号时会发生的错误
2、逻辑上是死循环

  1. %1 start /min "" %0 :
复制代码

TOP

在此先感谢各位大大的帮助。但是呢?问题还是没有解决……
不知道各位大大在自己电脑上试过没有,我在电脑上以调用两个批处理为例,当两个批处理执行完毕后,最小化掉的那个窗口还是没有自动退出啊?
我想要它执行完后自动退出,可惜不行啊?请问还有哪位大大有高见啊!先拜上一拜…!

TOP

  1. @echo off
  2. if  "%~1"=="ext" goto start
  3. start /min %~fs0 ext & exit
  4. :start
  5. start /w 123.exe
  6. start 234.exe
  7. exit
复制代码

TOP

刚才试了一下代码 差点被害死,不得不在中间加了一个pause

@echo on
::pause>nul

setlocal enabledelayedexpansion
if "%~1"=="" start /min "" %~f0 (任意字母) && exit
楼主以上代码可以正常运行

问高手:%~df0 %~f0 %~0  用这些参数要注意什么

TOP

没有想到这个小小的问题各位英雄齐聚啊!哈哈!先行拜谢

TOP

如何把问题标为已解决?

TOP

返回列表