หากคุณต้องการเปลี่ยนเส้นทางของเอาต์พุตทั้งหมดไปยังไฟล์ให้ลองใช้*>>
:
# You'll receive standard output for the first command, and an error from the second command.
mkdir c:\temp -force *>> c:\my.log ;
mkdir c:\temp *>> c:\my.log ;
เนื่องจากนี่เป็นการเปลี่ยนเส้นทางไปยังไฟล์โดยตรงจึงไม่ส่งออกไปยังคอนโซล (มักเป็นประโยชน์) หากคุณต้องการเอาต์พุตคอนโซลรวมเอาต์พุตทั้งหมดด้วย*&>1
แล้วไพพ์ด้วยTee-Object
:
mkdir c:\temp -force *>&1 | Tee-Object -Append -FilePath c:\my.log ;
mkdir c:\temp *>&1 | Tee-Object -Append -FilePath c:\my.log ;
# Shorter aliased version
mkdir c:\temp *>&1 | tee -Append c:\my.log ;
ฉันเชื่อว่าเทคนิคเหล่านี้ได้รับการสนับสนุนใน PowerShell 3.0 หรือใหม่กว่า ฉันกำลังทดสอบ PowerShell 5.0