[英]Scheduled Powershell Task, stuck Running
I have problems when running a powershell script in Scheduled Tasks. 在计划任务中运行PowerShell脚本时遇到问题。 It gets stuck in Running, even though the Transcript has logged out the last row "Done!" 即使Transcript已经记录了最后一行“Done!”,它仍然停留在Running中。 and it also looks like it has done exactly what i want it to. 而且看起来它完全符合我的要求。 What am I missing? 我错过了什么?
When running it from Run
in Windows it also seems fine: powershell -file "D:\\_temp\\copy_bat\\copy_one_reprint_folder.ps1"
从Windows中的Run
它似乎也很好: powershell -file "D:\\_temp\\copy_bat\\copy_one_reprint_folder.ps1"
Seetings in Task Scheduler is: 任务计划程序中的Seetings是:
powershell.exe
动作,启动程序powershell.exe
-file "D:\\_temp\\copy_bat\\copy_one_reprint_folder.ps1"
Please see code below if needed. 如果需要,请参阅下面的代码。
# PowerShell RePRINT copy first folder, sorted on lastModified
function timestamp
{
$ts = Get-Date -format s
return $ts
}
$fromDirectory = "D:\_temp\copy_bat"
$toDirectory = "D:\_temp\in_dummy"
$extractGUIDdir = ""
$docTypeDir = ""
# Logging
#########
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path $fromDirectory\copy_one_reprint_folder.log.txt -append
###########
Write-Host ""
Write-Host (timestamp) "Copy RePRINT extract started"
Write-Host (timestamp) "============================"
Get-ChildItem -path $fromDirectory | ?{ $_.PSIsContainer } | Sort-Object CreationTime | `
Where-Object {$_.name -ne "_copied"} | `
Select-Object -first 1 | `
Foreach-Object{
Write-Host (timestamp) $_.name
$extractGUIDdir = $_.FullName
Get-ChildItem -path $extractGUIDdir | ?{ $_.PSIsContainer } | Where-Object {$_.Name -match "Purchase Order \(-999999997\)" -or $_.Name -match "Logistics documents \(-1000000000\)" -or $_.Name -match "Specifications \(-999999998\)"} | `
Foreach-Object{
Write-Host (timestamp) " " $_.Name
}
Write-Host ""
Write-Host "These folders (document types), were also found but will not be included"
Get-ChildItem -path $extractGUIDdir -Exclude "Logistics documents (-1000000000)", "Purchase Order (-999999997)", "Specifications (-999999998)" | ?{ $_.PSIsContainer } | `
Foreach-Object{
Write-Host (timestamp) " - " $_.name
}
Write-Host ""
Get-ChildItem -path $extractGUIDdir | ?{ $_.PSIsContainer } | Where-Object {$_.Name -match "Purchase Order \(-999999997\)" -or $_.Name -match "Logistics documents \(-1000000000\)" -or $_.Name -match "Specifications \(-999999998\)"} | `
Foreach-Object{
$temp_name = $_.FullName
Write-Host (timestamp) "copying files from " $_.FullName
Write-Host (timestamp) " to " $toDirectory
#Copy-Item ($_.FullName)\*.* $toDirectory
Write-Host (timestamp) " copying meta-files..."
Copy-Item $temp_name\*.meta $toDirectory -Filter *.meta
Write-Host (timestamp) " copying pdf-files..."
Copy-Item $temp_name\*.pdf $toDirectory -Filter *.pdf
if(Test-Path $temp_name\*.* -Exclude *.meta, *.pdf)
{
Write-Host (timestamp) " WARNING/ERROR not all documents have been moved. Only PDFs was moved!"
Write-Host (timestamp) " Check folder for other document-types."
}
}
Move-Item $extractGUIDdir $fromDirectory\_copied
}
Write-Host (timestamp) " DONE!"
# Stop logging
Stop-Transcript
It is solved. 它解决了。
It works, stupid me did not press F5
(update) in task scheduler to update the status of the task in the gui. 它工作,愚蠢我没有按任务调度程序中的F5
(更新)来更新gui中任务的状态。
Actually I was quite certain I did this, but apparently not. 其实我很确定我这样做了,但显然不是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.