![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 22:06 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]停止程序 |
| 可打印版本 1,056 / 2 |
| 第1楼 coldface | 发表于 2010-08-14 23:26 |
| 初级用户 发帖 70 积分 71 | |
|
[求助]停止程序 游戏安装目录都放在d:\test下,查找此目录下所有exe,如果在进程中,则终止。
@echo off tasklist >Tasklist.txt for /f "delims=" %%i in ('dir "D:\test\*.EXE" /b /s') do echo %%i >>Game.txt for /f "tokens=3 delims=\" %%k in (Game.txt) do ( set str=%%k find /i Tasklist.txt "%str%" if errorlevel 1 ((del /q Tasklist.txt)&(goto end)) if errorlevel 0 ((del /q Tasklist.txt)&(goto kill)) :end Echo "The game is not running" exit :kill ntsd -c q -pn %str% ) 但是好像上面的不生效,谁帮忙指下错? 谢谢! |
|
| 第2楼 wangyang331407 | 发表于 2010-08-21 20:39 |
| 初级用户 发帖 28 积分 28 | |
|
if errorlevel 1 del /q Tasklist.txt&goto end
if errorlevel 0 del /q Tasklist.txt&goto kill 好像是这样的。 |
|
| 第3楼 doshsyy | 发表于 2010-08-22 13:05 |
| 新手上路 发帖 15 积分 19 | |
|
我设的路径是F:\Games,你要改为D:\test。
还有建议看下设置变量延迟(setlocal enabledelayedexpansion),你的批处理里面的变量不太对,没有开启变量延迟。一定要弄懂,不然没法用for。 @echo off&setlocal enabledelayedexpansion set is=0 tasklist>Tasklist.txt for /R F:\Games %%e in (*.exe) do ( find "%%~ne" Tasklist.txt>>ruslt.txt ) for /f "eol=- tokens=1delims= " %%r in (ruslt.txt) do ( del /q Tasklist.txt&del /q ruslt.txt&taskkill /IM %%r&echo.Kill %%r successful!&set is=1&pause ) if !is!==0 del /q Tasklist.txt&del /q ruslt.txt&echo."The game is not running!"&pause is变量只是以是否有游戏进程来控制回显的,没什么作用。不要被我弄糊涂了。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |