亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將Windowscmd標準輸出和stderr重定向到單個文件

將Windowscmd標準輸出和stderr重定向到單個文件

將Windowscmd標準輸出和stderr重定向到單個文件我試圖重定向所有輸出(stdout+stderr)DoS命令到單個文件:C:\>dir 1> a.txt 2> a.txt The process cannot access the file because it is being used by another process.這是可能的,還是應該重定向到兩個單獨的文件?
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

Anders Lindahl的回答是正確的,但是應該注意,如果您要將stdout重定向到一個文件,并且也想重定向stderr,那么您必須確保2>&1指定這個1>重定向,否則就不能工作了。

REM *** WARNING: THIS WILL NOT REDIRECT STDERR TO STDOUT ****
dir 2>&1 > a.txt

正確方式:dir > a.txt 2>&1..若要附加,請使用>>.


查看完整回答
反對 回復 2019-07-09
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

來自MSKB的背景信息

雖然這個問題的公認答案是正確的,但解釋起來卻沒有多大作用為什么它起作用了,而且由于語法還不清楚,所以我做了一個快速的Google來找出到底發生了什么。為了希望這些信息對其他人有所幫助,我在這里發布。

摘自Ms Support KB 110930.


來自MSKB 110930

從命令提示符重定向錯誤消息:STDERR/STDOUT

摘要

當使用class>‘>符號重定向應用程序的輸出時,錯誤消息仍然打印到屏幕上.這是因為錯誤消息通常被發送到標準錯誤流,而不是標準輸出流。

控制臺(命令提示符)應用程序或命令的輸出通常發送到兩個單獨的流。常規輸出被發送到標準輸出(STDOUT),錯誤消息被發送到標準錯誤(STDERR)。當您使用“>”符號重定向控制臺輸出時,您只是重定向STDOUT。為了重定向STDERR,您必須為重定向符號指定‘2>’.這將選擇第二個輸出流,即STDERR。

命令dir file.xxx(在哪里file.xxx)將顯示以下輸出:

Volume in drive F is Candy Cane Volume Serial Number is 34EC-0876

File Not Found

如果將輸出重定向到NUL設備使用dir file.xxx > nul,您仍將看到輸出的錯誤消息部分,如下所示:

File Not Found

將錯誤消息重定向(僅)到NUL,使用以下命令:

dir file.xxx 2> nul

或者,您可以將輸出重定向到一個地方,將錯誤重定向到另一個地方。

dir file.xxx > output.msg 2> output.err

您可以通過使用“&1”命令將STDERR的輸出重定向到STDOUT,然后將輸出從STDOUT發送到文件,從而將錯誤和標準輸出打印到單個文件:

dir file.xxx 1> output.msg 2>&1


查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 1762 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號