中国DOS联盟论坛

中国DOS联盟

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

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

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





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

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 楼』:  

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

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





积分 101
发帖 35
注册 2005-10-26
状态 离线
『第 3 楼』:  求教退出批文件问题

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

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





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 4 楼』:  

在该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 楼』:  

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



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 楼』:  

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 楼』:  

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

不过,我也确实没有在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 楼』:  

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



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





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 9 楼』:  

如果你不选那个选项,光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 楼』:  

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 楼』:  

呵呵,“笑天”谦虚了。你那段话并非毫无可取之处,只是适用错误。如果不是你的那段话我还不知道在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 楼』:  

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 楼』:  

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



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 楼』:  

Re DOSforever:

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

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



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

一看二跟三动手


积分 396
发帖 188
注册 2005-10-23
来自 上海
状态 离线
『第 15 楼』:  

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

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

2005-10-29 23:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: