中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 12:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 纯DOS下如何退出批处理? 查看 765 回复 9
楼 主 纯DOS下如何退出批处理? 发表于 2008-01-22 22:58 ·  中国 广东 江门 开平市 电信
初级用户
积分 40
发帖 14
注册 2007-02-28 06:44
19年会员
UID 80377
性别 男
状态 离线
就像CMD下的EXIT这样
用EXE程序也可
2 发表于 2008-01-22 23:08 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
问题纯DOS EXIT还是纯DOS呀
重启RESTART.COM
第一高手 第二高手

3 发表于 2008-01-22 23:16 ·  中国 广东 江门 开平市 电信
初级用户
积分 40
发帖 14
注册 2007-02-28 06:44
19年会员
UID 80377
性别 男
状态 离线
打错了,不知道为什么编辑不了,是退出批处理的执行,不是重启。
4 发表于 2008-01-22 23:18 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
ctrl+c
第一高手 第二高手

5 发表于 2008-01-22 23:24 ·  中国 广东 江门 开平市 电信
初级用户
积分 40
发帖 14
注册 2007-02-28 06:44
19年会员
UID 80377
性别 男
状态 离线
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

意思是在批处理里加入语句,让它自己停止自己运行,除了这样

::语句***
goto end
::语句****
:end
6 发表于 2008-01-22 23:36 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
除了goto end我也不知道
你可以尝试程序返回值再goto end不过还是goto
第一高手 第二高手

7 发表于 2008-01-22 23:38 ·  中国 广东 江门 开平市 电信
初级用户
积分 40
发帖 14
注册 2007-02-28 06:44
19年会员
UID 80377
性别 男
状态 离线
貌似goto是最好方法

每一个子程序都加一个 goto end 就可以不互相干扰

:end 放在最后
8 发表于 2008-01-22 23:39 ·  中国 江西 南昌 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
方法比较多
取决于批处理的运行状态
如果被command /c调用,那么Exit就可以了

如果在命令行直接运行,除了goto :end
还可以echo.>quit.bat然后直接执行这个quit.bat

如果被父级批处理调用而又想退出所有批处理
似乎可以用command /p(记不太清了)
9 发表于 2008-01-22 23:57 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
echo.>quit.bat是个好办法
不过楼主的想法很独特,我写批处理从未考虑过中途exit
第一高手 第二高手

10 发表于 2008-01-23 00:34 ·  中国 广东 江门 开平市 电信
初级用户
积分 40
发帖 14
注册 2007-02-28 06:44
19年会员
UID 80377
性别 男
状态 离线
是这样的,我有两个版本的MHDD,放在A:\MHDD29和A:\MHDD46中,然后想写个mhdd.bat,内容如下:

@echo off
if "%ramd%%0"=="%0" goto error1
if "%1%0"=="%0" goto error2

deltree %ramd%:\mhdd%1 /y
md %ramd%:\mhdd%1
%ramd%:
cd mhdd%1
xcopy A:\mhdd%1 /e
mhdd%1
goto end

:error1
echo you must run this after ramdisk
goto end

:error2
echo Version(29/46) is needed
goto end

:end
A:

这样的话

MHDD 29

就会执行mhdd2.9 ,46类推


MHDD

的话就提示需要版本号
论坛跳转: