Powershell脚本计划任务不会结束

Powershell脚本计划任务不会结束

我想使用Powershell 脚本可自动执行 Win7 计算机上的一些备份。从 Powershell 终端手动运行时,脚本按宣传的方式运行,并在几秒钟后结束(这是一个小型备份)。

问题是当我尝试使用任务计划程序自动执行该过程时。当时间到了(或者当我手动运行任务时),脚本会运行并正确执行备份。但它不会返回到“就绪”,即使我知道它已经结束。我每次都必须手动停止任务。

现在,我还没有等着看任务再次运行时会发生什么,但是我认为它不会第二次启动,因为它还没有“准备好”。

我能做什么呢?

更新 1:

我选择的操作是“启动程序”。在“程序/脚本”框中,我输入了“powershell.exe”,并且作为参数,我输入了脚本“*.ps1”文件的路径。

更新 1:

我注意到,虽然任务没有返回到“就绪”状态,但如果我手动启动它,它会再次运行。

答案1

BackupScript.ps1 的最后两行是

Write-Host "Press any key to close ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

注释掉这些内容(或删除它们),计划任务应该可以完成并干净退出。如果你真的想在最后暂停,可以将最后一行替换为类似给它加上一个超时时间(每次睡眠为 1 秒):

$counter = 0
while(!$Host.UI.RawUI.KeyAvailable -and ($counter++ -lt 600))
{
      [Threading.Thread]::Sleep( 1000 )
}

相关内容