|
trickster
初级用户
 
积分 63
发帖 33
注册 2006-12-4
状态 离线
|
『楼 主』:
[求助]IF命令中引用了重定向后命令的执行问题
我是一名菜鸟,最近刚刚开始学习批处理,在论坛中下了一套"MS-DOS6_2批处理文件高级指南"教程,其中有关于下面一段代码的描述(原文):
if not exist io_text.bat dir >io_text.bat
此命令很直观,你可能会认为如果io_text.bat文件不存在,那么该批处理文件就会创建它.并将当前目录的文件清单赋给它,否则就什么也不做,遗憾的是,MS-DOS实际上并不如此运行. 当if命令中说明的命令用了至一文件的重定向时,MS-DOS就首先打开该文件以准备后面的输出. 接着MS-DOS进行if命令测试--在此例中是测试io_text.bat文件是否存在.由于ms-dos刚刚创建了此文件,所以它确确实实存在,这样if not exist 命令始终会失败,于是该命令执行后io_text.bat文件存在但内容为空
但在我测试过程中,io_text.bat文件却不为空,不知是我的理解出现偏差还是此文却有不妥之处,特此向各位请教.
──────────────── 版务记录 ────────────────
执行:namejm
原标题:[求助]IF命令的使用问题
说明:因标题过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。
提示:修改标题请在当前帖的右下脚点 编辑,修改完毕之后按 编辑帖子 即可。
处罚:因属论坛新人,暂时不予处罚;若三日之后尚未修改标题,将扣除2点积分,
以示惩罚,并由版主强制修改标题。请点击这里阅读论坛发帖规定,以避免在
今后的讨论中违规发帖。
──────────────── 版务记录 ────────────────
[ Last edited by trickster on 2006-12-27 at 08:52 PM ]
|
|
2006-12-28 00:28 |
|
|
redtek
金牌会员
     
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
2 楼』:
在 MS-DOS 6.22 环境下测试,这本书所写内容为真,的确是建立了一个内容为空的文件,文件长度为0。
但是,在 Windows CMD 环境下测试,一切都会是象想像中的那样…生成了存有DIR目录列表内容的一个文件~:)
《MS-DOS6_2批处理文件高级指南》这本书的写作环境是在 MS-DOS 6.22 版本上完成的,有些内容不适合 Windows CMD 环境。
但书中所讲的基础知识多数适合学习~:)
|

Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-12-28 00:59 |
|
|
trickster
初级用户
 
积分 63
发帖 33
注册 2006-12-4
状态 离线
|
|
2006-12-28 01:23 |
|
|