【笨問題】命令列執行結果同時輸出到螢幕跟檔案
1 | 6,496 |
CLI 指令執行結果要存成檔案很簡單,加上 > filename
將 stdout 轉向檔案就可以了。(或是 2>&1 >filename
連錯誤訊息也一併寫入)
但這麼做有個缺點,導向檔案後螢幕完全看不到結果,遇到耗時較久的作業會無法掌握進度,連程式有沒有當掉都搞不清楚。
有沒有辦法同時將結果輸出到螢幕跟檔案呢?
很簡單,但我最近才學會 - Unix 世界有個 tee 指令 專門滿足這個需求。
tee 在 Unix 為內建指令,在 Windows 可使用 Cmder 或安裝 Git for Windows,而 PowerShell 也有對映的 Tee-Object 提供相同功能。
以下示範 dir | tee output.txt
,螢幕可看到目錄內容,並同時存入 output.txt,就這麼簡單!
在中文版 Windows 使用時可能會遇到中文編碼問題(如下圖),由於 tee 會以 UTF-8 顯示,若命令列視窗為 Big5 (Code Page 950) 編碼中文會變亂碼,此時執行 chcp 65001 切換 Code Page 為 UTF-8 即可。
順便試試 PowerSheel Tee-Object:
Comments
# by 小黑
實用