中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » 结:Win2000下批处理结束后禁止自动关闭窗口与choice无法运行
English/Chinese Fix Translation
作者:
标题: 结:Win2000下批处理结束后禁止自动关闭窗口与choice无法运行 上一主题 | 下一主题
ybfq
初级用户





积分 101
发帖 35
注册 2005-10-26
状态 离线
『楼 主』:  结:Win2000下批处理结束后禁止自动关闭窗口与choice无法运行 使用 LLM 解释/回答一下

1、在98下编一个20字节的批处理文件,在ms-dos窗口执行的好好的,可拿到2000上的cmd下一试,只见画面一闪而过,为什么留不住这个cmd窗口呢?在98的dos属性中有一个选项“退出时关闭”,在2000的cmd属性中为什么找不到?求问。

2、还有我的批文件中有choice这个命令,在98的ms-dos窗口中能运行,可在2000的cmd窗口中提示说不是内部命令(系统中根本没这个命令),那这样的屁文件还能在2000中运行吗?谢谢!


——————————————— Edited by willsort ———————————————
原标题:求教批处理文件的问题
为了方便广大用户的浏览和版主的管理
请楼主注意标题应该有对内容的概括性
——————————————— Edited by willsort ———————————————


Last edited by willsort on 2005-10-28 at 21:03 ]


2005-10-26 16:24
查看资料  发短消息  网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

1、批处理运行后自动退出,要显示窗口,在CMD下调用,或语句中加入 pause 暂停。
2、2000没有 choice.exe 可以用 set /p 替代,详情见 set /?。


2005-10-26 16:53
查看资料  发送邮件  发短消息  网志  OICQ (105400208)  编辑帖子  回复  引用回复
ybfq
初级用户





积分 101
发帖 35
注册 2005-10-26
状态 离线
『第 3 楼』:  求教退出批文件问题 使用 LLM 解释/回答一下

编一个批文件,在2000下双击后,该批文件执行后自动退出,但在98下,双击后,显示的dos执行画面执行完成后,dos窗口不能自动退出,请问:在批文件中加什么命令,才能在98下让我以双击批文件的方式下,完成执行后立即退出。谢谢!


2005-10-28 09:47
查看资料  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

在该DOS窗口属性中,钩选“退出时关闭”




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2005-10-28 10:11
查看资料  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

另外建议将此贴转到(教學室),并删除我这个回帖




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2005-10-28 10:12
查看资料  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

Re DOSforever:

这并不是一个很简单的问题,而且也还没有解决,所以暂时尚不用移动至(教学室)。因为楼主的系统环境是Win2000,而即使是在Win9x环境中,修改DOS窗口的属性不是仅作用于当前窗口,就是作用于全局窗口,无法就某个批处理的执行窗口进行设置,这个设置只有在批处理的快捷方式(PIF)属性中才能达成。而XP的PIF属性中没有了这个设置。

再对此问题略作引申以抛砖引玉。

首先,在大多数 XP 的环境中,点击执行完批处理后会自动关闭命令行窗口,对于某些程序就是一闪而过,而无法观察到程序的输出结果,在这种情况下,我们需要在程序完后暂停一下,等到用户确认后再退出,这时我的方案是,在程序的结束处加上一句暂停语句 pause 或者 pause>nul ,这样它会等待用户按任意键确认后再关闭窗口。

但是,我们已经知道,在某些 NT 系列环境中,点击执行完批处理后并不会自动关闭命令行窗口,除了批处理语句可能含有上文中提到的 pause 或者执行了其它带有暂停性质的语句之外,就是这个窗口总是不会默认关闭的,至于具体的原因,因为我无法接触到此类环境,所以无法确认。

不知道各位尤其楼主 ybfq 兄是否能够提供更详细的细节?


——————————————— Edited by willsort ———————————————
红色字体所示内容,经实际验证乃错误言论,敬请注意!
——————————————— Edited by willsort ———————————————


Last edited by willsort on 2005-10-28 at 19:57 ]




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-10-28 13:27
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

呵呵,请“笑天”把楼主的帖子再仔细看一遍,看清他的要求。

不过,我也确实没有在Win NT/2000/XP下运行过batch,也不知道有你说的那个现象




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2005-10-28 13:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

在批文件最后加入一行EXIT即可!




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-28 14:08
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

如果你不选那个选项,光EXIT,窗口也不会关闭




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2005-10-28 14:11
查看资料  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

Re DOSforever:

十分抱歉!不但匆忙之间没看清楼主的题意,而且同时发表了一些错误言论。上文中的第一段文字几乎毫无可取之处。

经过在 Win9x 下实际测试后证实,在批处理执行窗口的属性中,其“退出时关闭”默认是未选中的,如果勾选它,则会在自动在批处理所在路径下生成同名的快捷方式(PIF)文件。此后,每次退出此批处理均会自动关闭窗口。

而如果在 Command 的运行窗口属性中,其“退出时关闭”默认是选中的,如果取消勾选,则会影响 Windows 目录下的 command.pif 文件,而不会影响开始菜单中的 “MS-DOS 方式”,这个菜单实际上就是 MS-DOS 方式.pif 文件,位于 windows 的 Start Menu\Programs 目录下。以后,每次“运行” command 不会自动关闭窗口,而 “MS-DOS 方式” 仍然会自动关闭。

而如果一个批处理如果没有同名的 PIF 文件,则其 “退出时关闭” 必然未选中,如果有其他名字的指向此批处理的 PIF 文件的 “退出时关闭” 被选中,则只有执行此 PIF 才会自动关闭窗口,否则仍然不会自动关闭。

另外一种情况是,点击执行没有任何 PIF 文件的批处理,或者取消勾选 “退出时关闭” 的批处理,如果在程序执行的最后时刻没有屏幕输出,或者在程序的结束处加上 cls 或者 mode co80 等有清屏作用的语句,或者在程序执行过程中本就没有任何输出,则 Windows 仍将会自动关闭该批处理执行窗口。 exit 命令因为没有清屏作用,所以无效。

Last edited by willsort on 2005-10-30 at 10:53 ]




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-10-28 16:34
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

呵呵,“笑天”谦虚了。你那段话并非毫无可取之处,只是适用错误。如果不是你的那段话我还不知道在Win NT/2000/XP下运行batch有这个特性。

说到这个问题正好让我想起另一个问题,就是如果在“文件夹选项”->“查看”中,即使不勾选“隐藏已知文件类型的扩展名”,某些文件还是不能显示它的扩展名,比如 .pif .lnk 就是,请问有谁知道如何让所有文件都可以显示出它的扩展名。




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2005-10-28 17:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

Re DOSforever:

特定类型文件的扩展名总被隐藏,与 NeverShowExt 这个键值有关系,找到对应类型下的同名键值,删除它即可。当然,还需要取消勾选 “隐藏已知文件类型的扩展名”,才可以显示扩展名。

我删除 lnkfile 文件的 NeverShowExt 后,终于发现,其实在 WinXP 的 PIF 中也有“退出时关闭”的选项,我那段陈述中的最后一句也是错误的!因为我是沿用 Win9x 下的经验,通过在批处理的右键菜单中选择“创建快捷方式”,来创建对应的 PIF 文件,结果在 WinXP 下,这样做的结果是产生了一个 LNK 文件,而我一直将它认作 PIF 文件,因为我看不到它的扩展名……

Last edited by willsort on 2005-10-28 at 19:56 ]




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-10-28 19:46
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

我是在注册表中找到不少这样的键值,但问题是它所对应哪个扩展名看不出,而且奇怪的它的键值的数据是空的,也就是说即使有这个键值存在也是失效的?




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2005-10-28 20:24
查看资料  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

Re DOSforever:

对应的文件类型可以从这个键值所在的“分支项”的名字中看出来,比如 lnkfile 下的 NeverShowExt 便对应的是 .LNK 文件类型。

这个值确实是空的,因为它是字符串类型,所以它的真假是靠存在与否来判定的。如果存在,则为真,则总是隐藏扩展名,反之亦然。




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-10-28 20:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
dosz
中级用户

一看二跟三动手


积分 396
发帖 188
注册 2005-10-23
来自 上海
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

在程序的结束处加上一句 goto exit

Last edited by dosz on 2005-10-30 at 10:21 ]


2005-10-29 23:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: