|
IceFire
初级用户
 
积分 104
发帖 1
注册 2004-3-4
状态 离线
|
『楼 主』:
如何将DOS的错误提示打印到一个txt文件里?
比如我运行一个自编的程序内容是将一个文件从一个目录COPY到另一个目录. 当该文件不存在时,DOS会提示说找不到文件.
现在我想将DOS提示的信息打印到一个txt文件中
应该怎么做呢?[em26]
|
|
2004-3-4 00:00 |
|
|
gotomsdos
铂金会员
       C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
2 楼』:
试试这个个批处理
@echo off
copy \1dir\1.ext 2dir>3.txt
|
|
2004-3-8 00:00 |
|
|
qzwqzw
银牌会员
     天的白色影子
积分 2343
发帖 636
注册 2004-3-6
状态 离线
|
|
2004-3-9 00:00 |
|
|
mys
元老会员
        
积分 5170
发帖 1637
注册 2002-10-16 来自 广东佛山
状态 离线
|
『第
4 楼』:
这样行不行?
if exist \1dir\1.ext copy \1dir\1.ext 2dir>3.txt
if not exist \1dir\1.ext echo File not found.
|

我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
|
|
2004-3-9 00:00 |
|
|
qzwqzw
银牌会员
     天的白色影子
积分 2343
发帖 636
注册 2004-3-6
状态 离线
|
『第
5 楼』:
4楼的法子很取巧啊!可是这个File not found.不是copy发出的啊?不过,也好。如果楼主要求不高,这个也将就了。总比重定向错误设备要简单的多。
|
|
2004-3-10 00:00 |
|
|
moroko
高级用户
   
积分 919
发帖 198
注册 2004-1-17
状态 离线
|
|
2004-3-11 00:00 |
|
|
Climbing
铂金会员
       网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
7 楼』:
用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
|

偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2004-3-12 00:00 |
|
|
Wengier
系统支持
             “新DOS时代”站长
积分 27735
发帖 10521
注册 2002-10-9
状态 离线
|
『第
8 楼』:
Horst的软件不用说了,他出的大多数软件,如WBAT等,均无法与汉字系统很好的配合。
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2004-3-12 00:00 |
|
|
WisdomNil
新手上路

积分 4
发帖 2
注册 2006-4-20
状态 离线
|
『第
9 楼』:
这个问题在纯DOS下就不能解决了?!
我用del *.*命令时,如果目录下没有文件就有出错误提示,或文件不能删除也一样,用楼上的办法就搞不定了,希望高手指点!
|
|
2006-4-20 16:50 |
|
|
kcdsw
中级用户
  
积分 404
发帖 179
注册 2006-3-30
状态 离线
|
『第
10 楼』:
帅哥~~试试这个
copy ..\楼主是帅哥.txt 2>帅哥是楼主.txt
|
|
2006-4-21 16:11 |
|
|
tsenix
初级用户
 
积分 121
发帖 61
注册 2006-4-18 来自 HK
状态 离线
|
『第
11 楼』:
试试用errorlevel吧... 不过好像是把问题变得更复杂
|
|
2006-4-25 00:51 |
|
|
willsort
元老会员
         Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
12 楼』:
Re WisdomNil:
因为在DOS中,错误设备不能被显式的重定向,同时del/dir等内部命令因为并非使用INT 21/AH=4Ch退出,因此出错时不会产生errrorlevel。
所以,迄今为止,在DOS命令行或批处理中实现错误转向文件输出是未解决的问题。我目前所想到的思路,是使用debug汇编脚本重定向错误设备或者截取屏幕缓冲区的输出到文件中,但是实现起来比较困难。
|

※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2006-4-25 17:19 |
|
|
arding
初级用户
 
积分 90
发帖 38
注册 2006-1-6
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by kcdsw at 2006-4-21 16:11:
帅哥~~试试这个
copy ..\楼主是帅哥.txt 2>帅哥是楼主.txt |
|
经过试验,发现所谓错误有两种:
1。命令本身错误
2。参数错误
@echo off
echo 参数错误:>帅哥是楼主i.txt
echo ____________________>帅哥是楼主j.txt
echo 命令本身错误:>>帅哥是楼主j.txt
coby ..\楼主是帅哥.txt>>帅哥是楼主i.txt 2>>帅哥是楼主j.txt
::^^
copy 帅哥是楼主i.txt+帅哥是楼主j.txt errsum.txt
msg *<errsum.txt
del 帅哥是楼主i.txt
del 帅哥是楼主j.txt
del errsum.txt 1。命令本身错误 的出错信息能被"2>"得到;
2。参数错误 的出错信息能被">"得到;
[ Last edited by arding on 2006-5-11 at 15:59 ]
|
|
2006-5-11 15:52 |
|
|
willsort
元老会员
         Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
14 楼』:
Re arding:
所有错误,无论是无效命令名错误、无效命令参数错误还是命令执行过程中错误,均可分为两类:向标准错误stderr发出的和向标准输出stdout发出的。二者虽然缺省均指向控制台设备,但它们使用的仍然是不同的端口。
而 cmd 的 copy 命令是有些特殊的,因为它将许多错误都通过标准输出发出,所以我们用>file对这些错误信息进行重定向,但DOS和CMD下的大多数命令其错误信息通常都通过标准错误发出的。因此,你的二分法不具有普遍意义。
另外,楼主讨论的错误重定向至今仍限定在DOS环境下,CMD环境下的2>是不予讨论的。
|

※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2006-5-11 19:53 |
|
|
arding
初级用户
 
积分 90
发帖 38
注册 2006-1-6
状态 离线
|
『第
15 楼』:
有点明白。我这里不方便使用纯DOS,而且也从来没有深究这些细节。你的意思是不是集中在这句话:
如果这样,[纯DOS]是不是用ERRORLEVEL或者2>就可以捕获几乎所有错误?
[ Last edited by arding on 2006-5-12 at 09:28 ]
|
|
2006-5-12 09:24 |
|