Board logo

标题: 如何在c语言中调用dos系统命令时不显示命令行? [打印本页]

作者: utada     时间: 2003-8-5 00:00    标题: 如何在c语言中调用dos系统命令时不显示命令行?

在c语言中,用execl调用dos下另外一个应用程序时,会有命令行显示,怎么才能让那些信息不显示出来?
       就象用sys函数调用copy命令时,屏幕会显示 *** file copied ,怎么才能不显示这句话
作者: Wengier     时间: 2003-8-6 00:00
后面加入“>nul”试试吧。。
作者: utada     时间: 2003-8-7 00:00
试过了。不行。谢谢你了
作者: yanyanming     时间: 2003-8-9 00:00
用echo
作者: lemonhall     时间: 2003-8-10 00:00
DOS 7.1下用ECHO, 那可以把system("copy xxx"时的COPY XXX去掉.
用system("copy xxx >nul"; 应该会把falied.....那句话去掉.
exec的调用没试过.

还有一种情况,就是你使用的是DJGPP编译的EXE文件. 它的重定向和普通
DOS程序不太一样,试试 用system("XXX XXX >>NUL"来重定向.不行了
再来问.实在不行你把你要调用的东西发过来,我试好了再发源码给你.
作者: lemonhall     时间: 2003-8-10 00:00
对了,忘问了.你用的DOS版本是?编译系统是?
作者: utada     时间: 2003-8-11 00:00
我用的ms-dos6.22。是不是一定要用dos7.1的?
     我调用的是一个别人做的应用程序,是用于dos下ftp上传的。

作者: iceboy     时间: 2003-8-12 00:00
“>” 和 “>>” 是管道符号,只能重定向程序输出,而类似“Bad command or file name” 之类的系统提示则无能为力。
作者: lemonhall     时间: 2003-8-17 00:00
在ECHO OFF的前提下,把管道加上去。一切将会寂静无比。呵呵。。。。
作者: LanE     时间: 2003-8-17 00:00


  Quote:
以下是引用iceboy在2003-8-12 14:55:36的发言:
“>” 和 “>>” 是管道符号,只能重定向程序输出,而类似“Bad command or file name” 之类的系统提示则无能为力。

还有程序的错误信息也是不可以重定向的,例如:

C:\>copy a.txt d:\ >nul
File not found - a.txt

这个是我从DOS窗口里复制出来的
作者: lemonhall     时间: 2003-8-18 00:00
恩,没错。可是在,和EXEC()调用下。
真的是寂静无比啊。

我们又不是在讨论管道,是在讨论 “编程中的管道使用”

讨论是要针对楼主的问题的哦!!
作者: lemonhall     时间: 2003-8-18 00:00
哎,你DOS6。22和DOS7,那倒无所谓。。。。。。。。。

你把程序直接发给我,我在最流行的编译系统上都试一遍。不就好了??
我才你用的是TROUB C吧?或者是BC?

如果是使用BC,还可以重定向ERROR输出,用C++流来实现。方法多的很。
作者: LanE     时间: 2003-8-18 00:00


  Quote:
以下是引用lemonhall在2003-8-18 11:34:57的发言:
恩,没错。可是在,和EXEC()调用下。
真的是寂静无比啊。

我们又不是在讨论管道,是在讨论 “编程中的管道使用”

讨论是要针对楼主的问题的哦!!

呵呵,不好意思啊:)我忘了是在编程区了[em09]