![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 17:23 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何将DOS的错误提示打印到一个txt文件里? |
| 可打印版本 6,526 / 18 |
| 第1楼 IceFire | 发表于 2004-03-04 00:00 |
| 初级用户 发帖 1 积分 104 | |
|
如何将DOS的错误提示打印到一个txt文件里? 比如我运行一个自编的程序内容是将一个文件从一个目录COPY到另一个目录. 当该文件不存在时,DOS会提示说找不到文件.
现在我想将DOS提示的信息打印到一个txt文件中 应该怎么做呢? |
|
| 第2楼 GOTOmsdos | 发表于 2004-03-08 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
试试这个个批处理
@echo off copy \1dir\1.ext 2dir>3.txt |
|
| 第3楼 qzwqzw | 发表于 2004-03-09 00:00 |
| 银牌会员 发帖 636 积分 2,343 | |
|
gotomsdos 的方法不行
|
|
| 第4楼 MYS | 发表于 2004-03-09 00:00 |
| 元老会员 发帖 1,637 积分 5,170 来自 广东佛山 | |
|
这样行不行?
if exist \1dir\1.ext copy \1dir\1.ext 2dir>3.txt if not exist \1dir\1.ext echo File not found. |
|
| 第5楼 qzwqzw | 发表于 2004-03-10 00:00 |
| 银牌会员 发帖 636 积分 2,343 | |
|
4楼的法子很取巧啊!可是这个File not found.不是copy发出的啊?不过,也好。如果楼主要求不高,这个也将就了。总比重定向错误设备要简单的多。
|
|
| 第6楼 moroko | 发表于 2004-03-11 00:00 |
| 高级用户 发帖 198 积分 919 | |
|
con >*.txt
|
|
| 第7楼 Climbing | 发表于 2004-03-12 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
用lmod啊
copy dir1\file1.ext dir2 > lmod /L* > 3.txt lmod是Horst Schaeffer的产品,他的产品好是好,但在中文系统下有些小问题(总出现Invalid keyboard code specified,然后就不能显示中文了),真希望他改进一下支持多国字符集。 Contact - Email: horst.schaeffer@gmx.net Homepage: http://home.nikocity.de/horst.muc/int |
|
| 第8楼 Wengier | 发表于 2004-03-12 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
Horst的软件不用说了,他出的大多数软件,如WBAT等,均无法与汉字系统很好的配合。
|
|
| 第9楼 WisdomNil | 发表于 2006-04-20 16:50 |
| 新手上路 发帖 2 积分 4 | |
|
这个问题在纯DOS下就不能解决了?!
我用del *.*命令时,如果目录下没有文件就有出错误提示,或文件不能删除也一样,用楼上的办法就搞不定了,希望高手指点! |
|
| 第10楼 kcdsw | 发表于 2006-04-21 16:11 |
| 中级用户 发帖 179 积分 404 | |
|
帅哥~~试试这个
|
|
| 第11楼 tsenix | 发表于 2006-04-25 00:51 |
| 初级用户 发帖 61 积分 121 来自 HK | |
|
试试用errorlevel吧... 不过好像是把问题变得更复杂
|
|
| 第12楼 willsort | 发表于 2006-04-25 17:19 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re WisdomNil:
因为在DOS中,错误设备不能被显式的重定向,同时del/dir等内部命令因为并非使用INT 21/AH=4Ch退出,因此出错时不会产生errrorlevel。 所以,迄今为止,在DOS命令行或批处理中实现错误转向文件输出是未解决的问题。我目前所想到的思路,是使用debug汇编脚本重定向错误设备或者截取屏幕缓冲区的输出到文件中,但是实现起来比较困难。 |
|
| 第13楼 arding | 发表于 2006-05-11 15:52 |
| 初级用户 发帖 38 积分 90 | |
Originally posted by kcdsw at 2006-4-21 16:11: 经过试验,发现所谓错误有两种: 1。命令本身错误 2。参数错误 1。命令本身错误 的出错信息能被"2>"得到; 2。参数错误 的出错信息能被">"得到; [ Last edited by arding on 2006-5-11 at 15:59 ] |
|
| 第14楼 willsort | 发表于 2006-05-11 19:53 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re arding:
所有错误,无论是无效命令名错误、无效命令参数错误还是命令执行过程中错误,均可分为两类:向标准错误stderr发出的和向标准输出stdout发出的。二者虽然缺省均指向控制台设备,但它们使用的仍然是不同的端口。 而 cmd 的 copy 命令是有些特殊的,因为它将许多错误都通过标准输出发出,所以我们用>file对这些错误信息进行重定向,但DOS和CMD下的大多数命令其错误信息通常都通过标准错误发出的。因此,你的二分法不具有普遍意义。 另外,楼主讨论的错误重定向至今仍限定在DOS环境下,CMD环境下的2>是不予讨论的。 |
|
| 第15楼 arding | 发表于 2006-05-12 09:24 |
| 初级用户 发帖 38 积分 90 | |
|
有点明白。我这里不方便使用纯DOS,而且也从来没有深究这些细节。你的意思是不是集中在这句话:
如果这样,是不是用ERRORLEVEL或者2>就可以捕获几乎所有错误? [ Last edited by arding on 2006-5-12 at 09:28 ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |