c语言 输出定向到文件 命令提示符窗口也能看见,显示Windows命令提示符输出并将其重定向到文件...

本文介绍如何在Windows命令提示符下运行命令并将输出同时显示在屏幕上和重定向到文件的方法,包括直接命令操作、批处理脚本及利用PowerShell的Tee-Object命令。

如何在Windows命令提示符下运行命令行应用程序,并同时显示输出和重定向到文件?

例如,如果我运行命令dir > test.txt ,这会将输出重定向到一个名为test.txt的文件,而不显示结果。

我怎么能写一个命令显示输出和输出重定向到在Windows命令提示符下一个文件,类似于tee上的Unix命令?

#1楼

如果您希望在屏幕上真正看到某些内容,即使将批处理文件重定向到文件,也可以使用以下帮助。 如果将设备CON重定向到文件,也可以使用

例:

ECHO first line on normal stdout. maybe redirected

ECHO second line on normal stdout again. maybe redirected

ECHO third line is to ask the user. not redirected >CON

ECHO fourth line on normal stdout again. maybe redirected

#2楼

我能够找到将输出重定向到文件然后重定向到控制台的解决方案/解决方法:

dir > a.txt | type a.txt

其中dir是需要重定向输出的命令, a.txt是存储输出的文件。

#3楼

不需要cygwin。

我确实遇到并报告了一些问题。

另外,您可能会检查unxutils,因为它包含tee(不需要cygwin),但是请注意,此处输出的EOL与UNIX类似。

最后但并非最不重要的一点是,如果您具有PowerShell,则可以尝试使用Tee-Object。 在PowerShell控制台中键入get-help tee-object以获得更多信息。

#4楼

这是实时的,但也很丑陋,性能很慢。 没有经过良好测试:

@echo off

cls

SET MYCOMMAND=dir /B

ECHO File called 'test.bat' > out.txt

for /f "usebackq delims=" %%I in (`%MYCOMMAND%`) do (

ECHO %%I

ECHO %%I >> out.txt

)

pause

#5楼

另一种方法是在程序中将stdout发送到stderr:

在Java中:

System.setOut(new PrintStream(new TeeOutputStream(System.out, System.err)));

然后,在您的dos批处理文件中: java program > log.txt

stdout将转到日志文件,并且stderr(相同数据)将显示在控制台上。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值