标题: [其他] [已解决]批处理如何最小化调用自身? [打印本页]
作者: lijinpengying 时间: 2012-5-4 10:23 标题: [已解决]批处理如何最小化调用自身?
怎样才能让批处理最小化运行呢?我知道利用vbs可以让它后台。也知道批处理自身有一个命令是start /min
可是,问题来了:- start /min %0
- @echo off
- start /w 123.exe
- start 234.exe
- 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
- @echo off
- if "%~1"=="" start /min %0 run
- ::接收命令参数,如果没有参数则运行自身,否则进行下一步
- start /w 123.exe
- ::start /w 会等待123.exe结束后才运行下一行命令
- start 234.exe
- exit
复制代码
作者: gawk 时间: 2012-5-5 01:58
回复 1# lijinpengying
版主让你判断的是位置参数%1
作者: CrLf 时间: 2012-5-5 06:02
1,没考虑到 %0 含双引号时会发生的错误
2、逻辑上是死循环
复制代码
作者: lijinpengying 时间: 2012-5-5 09:16
在此先感谢各位大大的帮助。但是呢?问题还是没有解决……
不知道各位大大在自己电脑上试过没有,我在电脑上以调用两个批处理为例,当两个批处理执行完毕后,最小化掉的那个窗口还是没有自动退出啊?
我想要它执行完后自动退出,可惜不行啊?请问还有哪位大大有高见啊!先拜上一拜…!
作者: 527104427 时间: 2012-5-5 11:11
- @echo off
- if "%~1"=="ext" goto start
- start /min %~fs0 ext & exit
- :start
- start /w 123.exe
- start 234.exe
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |