我想运行此命令并将redirect所有输出都运行到Windows以及日志文件。
powershell "C:\backup\backup.bat *>&1 | tee log.txt"
所以当我运行命令时,我可以看到输出并将其保存在文件中,但是我收到了这个错误:
Ampersand not allowed. The & operator is reserved for future use; use "&" to pa
ss ampersand as a string.
At line:1 char:25
+ C:\backup\backup.bat *>& <<<< 1 | tee log.txt
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordEx
ception
+ FullyQualifiedErrorId : AmpersandNotAllowed
答案 0 :(得分:4)
要将.bat文件执行的输出提供给控制台以及文件,请使用:
powershell "& 'C:\backup\backup.bat' *>&1 | Tee-Object -FilePath 'log.txt'"
有一篇好文章PowerShell and external commands done right,它解释了如何启动外部命令。之后,只需在您链接的文章中应用重定向。
答案 1 :(得分:2)
在PowerShell v3之前,不支持重定向Success
和Error
以外的流(AKA STDOUT
和STDERR
),如@CB。在评论中提到。在PowerShell v2中,您只能合并错误流:
powershell "C:\backup\backup.bat 2>&1 | tee log.txt"