我移植bash脚本登录到PowerShell中,其在该文件的顶部如下:
# redirect stderr and stdout
backupdir="/backup"
logfile=$backupdir/"std.log"
exec > >(tee -a $logfile)
exec 2> >(tee -a $logfile >&2)
echo "directory listing:"
ls -la
使用exec语句,标准输出和stderror被重定向到日志文件。
bash中的exec命令非常好,因为重定向在脚本开始时设置一次。如果可能的话,我想避免在每个命令上明确设置重定向。
在PowerShell中是否有与上面的任何等价物?
看看开始抄本cmdlet:get-help start-trascript -full –
你应该做出答案。顺便说一句日志并不完全是PowerShell的强项。检查[this](https://connect.microsoft.com/PowerShell/feedback/details/283088/script-logging-needs-to-be-improved)和[this](https://connect.microsoft.com/ PowerShell/feedback/details/297055/capture-warning-verbose-debug-and-host-output-via-alternate-streams)out。 –
他们抱怨的是在V3中修复的。流水线,错误,警告,详细和调试流可以分别单独重定向到1-5。 – mjolinor