我正在使用Register-ScheduledJob在我执行脚本的后台作业中在 powershell 中注册作业。该脚本包含一些命令,例如 Get-Process 和 Write-Host 命令。和...
尽管每个命令都在结果中执行,但我看不到写入主机的输出(get-Process 没问题)
也许有人知道为什么?
我正在使用Register-ScheduledJob在我执行脚本的后台作业中在 powershell 中注册作业。该脚本包含一些命令,例如 Get-Process 和 Write-Host 命令。和...
尽管每个命令都在结果中执行,但我看不到写入主机的输出(get-Process 没问题)
也许有人知道为什么?
Write-Host 写入主机,这是脚本正在运行的应用程序(例如 PowerShell.exe),因此它会显式输出到屏幕,并且当您在非交互式环境中运行时不会执行任何操作。您永远不应该使用它来输出您想要收集的数据,仅用于轻量级调试或在交互式脚本中打印到屏幕上。
您通常应该将 write-output 用于要作为输出收集的数据。
虽然您也可以使用调试/警告/错误输出(这些由作业收集,但未显示在常规输出中)。
非常感谢你。写输出有帮助。
另外,我在最后几天发现的内容可能对其他人有帮助:如果您启动预定的后台作业并在此作业中启动 powershell 脚本,如下所示:
Register-ScheduledJob -Name1 temp -ScheduledJobOption $option -ScriptBlock {
D:\scprit.ps1
}
你的工作永远不会结束,因为完成脚本后 powershell 窗口仍然打开。因此,您必须在脚本块中添加退出:
Register-ScheduledJob -Name1 temp -ScheduledJobOption $option -ScriptBlock {
D:\scprit.ps1
Exit-PSSession
}