我有一个 powershell 脚本,它在 cmd 行中运行良好,但从任务计划程序运行时会出现很多问题。
所以我需要查看所有命令的所有控制台输出。
该脚本执行了很多外部命令(net use、robocopy 等)。这些命令的输出正是我最需要的。
我们不想对每个命令进行检测,因为这样很丑陋,而且我们需要以交互方式运行它(并查看发生了什么)。
我尝试使用 -Verbose 的 powershell “Start-Transcript”,但没有一个命令记录到脚本文件中。即使我们按照本指令由 powershell 团队的一名成员撰写:|Out-Default(例如 ipconfig.exe | Out-Default),我们仍然没有在记录中看到输出。
接下来是什么?
答案1
通过重定向 powershell 调用配置在计划任务中进行的日志记录:
cmd /c powershell.exe -noninteractive -file c:\temp\script.ps1 > c:\temp\some.log 2>&1
如果ROBOCOPY
日志包含超过 10 个文件,我会使用/LOG:c:\temp\robo.log
该命令支持的选项将其分开。
答案2
好吧,即使这不是最漂亮的解决方案,您是否可以做以下类似的事情?
net use z: \\my\path >> mylogfile.txt 2>&1
您可以使用 robocopy 的日志记录功能执行相同的操作,只需将其附加到同一个文件即可。