楼 主
[求助]求一两程序判断运行和退出批处理,谢谢
发表于 2008-06-29 18:42 · 中国 广西 南宁 电信
初级用户
★
积分 43 发帖 17 注册 2005-10-28 15:02 UID 44208
状态 离线
A、B为任务管理器中的两可执行文件。B运行,则A退出;B结束之后,A运行,最后A运行完之后B也无运行动作,则结束此批处理 (注:差点忘记了,A在c:\windows\temp下)
求助,HELP,万分感谢!
先谢谢zw19750516
可能我刚才我表述的还不是十分清楚,是这样的:
一开机之后就会在任务管理器中运行 c:\windows\temp\A.EXE ,此时若进程中有B.exe在运行,则退出A.exe; 若进程B.exe结束则继续运行A.exe;若AB都无,则退出批处理
谢谢,能帮改改吧???
对于你们来说,只不过是举手之劳,而对于我们这种不是很熟悉DOS命令的人就是一座山峰,顶到解决为止,谢谢
[ Last edited by 29406352 on 2008-7-5 at 05:12 PM ]
第 2 楼
发表于 2008-06-29 19:48 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 UID 112398 性别 男
状态 离线
请楼主自己测试吧:
@echo off
cd /d c:\windons\temp
set code=ab
:begin
set "flag="
set /a a=%random%%%2
call,set a=%%code:~%a%,1%%
call,set b=%%code:%a%=%%
taskkill /im %b%.exe /f 2>nul
start /wait %a%.exe
tasklist|findstr "a.exe">nul&&set flag=1
tasklist|findstr "b.exe">nul&&set flag=1
if not defined flag goto :eof
goto begin
[
Last edited by zw19750516 on 2008-6-29 at 07:50 PM ]
批处理之家新域名:www.bathome.net
第 3 楼
发表于 2008-06-29 21:29 · 中国 重庆 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 UID 89899 性别 男
状态 离线
只要从2楼的代码里面学会怎样使用taskkill和tasklist就行了,自己改不出来?
第 4 楼
发表于 2008-06-29 22:13 · 中国 广西 南宁 电信
初级用户
★
积分 43 发帖 17 注册 2005-10-28 15:02 UID 44208
状态 离线
简单的应用就会些,帮帮忙啊
谢谢~~~
(另:"此时不应有=%"是什么问题?)
第 5 楼
发表于 2008-06-30 00:04 · 中国 广西 南宁 电信
初级用户
★
积分 43 发帖 17 注册 2005-10-28 15:02 UID 44208
状态 离线
..............................
第 6 楼
发表于 2008-06-30 00:21 · 中国 重庆 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 UID 89899 性别 男
状态 离线
(另:"此时不应有=%"是什么问题?)
你不会是把2楼的代码放到命令行解释器里面运行吧?
第 7 楼
发表于 2008-06-30 14:13 · 中国 广西 南宁 电信
初级用户
★
积分 43 发帖 17 注册 2005-10-28 15:02 UID 44208
状态 离线
第 8 楼
发表于 2008-07-05 17:12 · 中国 广西 南宁 电信
初级用户
★
积分 43 发帖 17 注册 2005-10-28 15:02 UID 44208
状态 离线
第 9 楼
发表于 2008-07-06 02:40 · 中国 广东 江门 联通
初级用户
★
积分 42 发帖 13 注册 2007-08-03 23:26 UID 94610 性别 男
状态 离线
:loop
tasklist|find "B.exe" && taskkill /f /im A.exe 2>nul || tasklist|find "A.exe" || c:\windows\temp\A.EXE
tasklist|find "A.exe" || tasklist|find "B.exe" || exit /b
goto loop
[ Last edited by ywwywwjm on 2008-7-6 at 03:17 AM ]
第 10 楼
发表于 2008-07-06 11:23 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 UID 112398 性别 男
状态 离线
可能我刚才我表述的还不是十分清楚,是这样的:
一开机之后就会在任务管理器中运行 c:\windows\temp\A.EXE ,此时若进程中有B.exe在运行,则退出A.exe; 若进程B.exe结束则继续运行A.exe;若AB都无,则退出批处理
开机运行a.exe:一是将a.exe拖入到开始菜单的启动文件夹中去,二是将a.exe加入系统启动项中去(msconfig),三是建立计划任务:
schtasks /create /ru system /tn test /tr c:\windows\temp\a.exe /sc onstart
批处理代码如下:
@echo off
:again
tasklist|findstr /i "b.exe">nul&&taskkill /im a.exe /f||start "" "c:\windows\temp\a.exe"
tasklist|findstr /i "a.exe">nul||tasklist|findstr /i "b.exe">nul||goto :eof
goto again
[
Last edited by zw19750516 on 2008-7-6 at 11:26 AM ]
批处理之家新域名:www.bathome.net
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正