重定向命令输出

时间:2011-04-27 22:21:52

标签: shell powershell redirect cmd

人,  我需要将命令输出重定向到2个文件,在一个文件重定向标准输出流中, 到另一个文件重定向stderr流。 是否可以在Windows上使用cmd,PowerShell进行操作?

2 个答案:

答案 0 :(得分:4)

对于powershell

我们假设你有my.ps1如下:

"output"
Write-Error "error output"
exit 1

你可以这样做:

.\my.ps1 2>stderr.txt | Tee-Object -file stdout.txt

你在相应的文件中得到了stdout和stderr。

有关Tee-Object的更多信息:

http://technet.microsoft.com/en-us/library/dd347705.aspx

有关捕获所有流的更多信息:

https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=297055&SiteID=99

答案 1 :(得分:1)

在Powershell中,您可以使用众所周知的重定向运算符>>>2>2>>重定向标准输出和错误。

首先确保设置:

$erroractionpreference.value__=1

然后使用重定向。

<强>示例:

ls C:\ 2> stderror.txt > stdoutput.txt # write output on stdoutput.txt

ls foo 2> stderror.txt > stdoutput.txt # write output on stderror.txt unless foo exists