Board logo

标题: [其他] [已解决]批处理如何最小化调用自身? [打印本页]

作者: lijinpengying    时间: 2012-5-4 10:23     标题: [已解决]批处理如何最小化调用自身?

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

怎么没有人理我?孤星大大呢?
作者: cjiabing    时间: 2012-5-4 15:13

因为你没有添加判断,命令循环重复执行了,而没有退出来。
作者: lijinpengying    时间: 2012-5-4 15:42

回复 3# cjiabing


    大大,加了也没有用啊!不然,大大把代码贴出来,我试试……
作者: gawk    时间: 2012-5-4 16:44

回复 4# lijinpengying


    那就是没加对。代码贴出来,大家帮你改改。
作者: lijinpengying    时间: 2012-5-4 17:37

回复 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把它后台哈!
我今天做了很多实验,就是不能达到我要的效果。
这样写的代码,总是有一个窗口最小化在下面。不会自动退出。这个窗口就是这个批处理。
作者: yangfengoo    时间: 2012-5-4 21:01

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

start /w 123.exe
start 234.exe

start /w 123.exe要这个执行结束,才会退出 去掉/w
作者: cjiabing    时间: 2012-5-4 22:19

  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
复制代码

作者: gawk    时间: 2012-5-5 01:58

回复 1# lijinpengying


    版主让你判断的是位置参数%1
作者: CrLf    时间: 2012-5-5 06:02

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

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

作者: lijinpengying    时间: 2012-5-5 09:16

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

  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
复制代码

作者: 秋风·飞扬    时间: 2012-5-5 14:19

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

@echo on
::pause>nul

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

问高手:%~df0 %~f0 %~0  用这些参数要注意什么
作者: lijinpengying    时间: 2012-5-5 15:18

没有想到这个小小的问题各位英雄齐聚啊!哈哈!先行拜谢
作者: lijinpengying    时间: 2012-5-5 15:28

如何把问题标为已解决?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2