PowerShell启动作业运行

PowerShell启动作业运行,powershell,jobs,start-job,Powershell,Jobs,Start Job,我需要在PowerShell工作方面的帮助。我写了下面的脚本,作业运行了,但它实际上什么都没做。我尝试了一些方法,比如调用命令,但是PowerShell在移动到下一行之前等待完成,这不是我想要的。我需要将此代码与它下面的一些剩余代码并行运行 #Arhive Files in Data Folder $ArchiveDataFiles = { function test { $ArchiveDataFilesList = Get-ChildItem "$PSScriptRo

我需要在PowerShell工作方面的帮助。我写了下面的脚本,作业运行了,但它实际上什么都没做。我尝试了一些方法,比如
调用命令
,但是PowerShell在移动到下一行之前等待完成,这不是我想要的。我需要将此代码与它下面的一些剩余代码并行运行

#Arhive Files in Data Folder
$ArchiveDataFiles = {
    function test {
        $ArchiveDataFilesList = Get-ChildItem "$PSScriptRoot\Data\*.pdf" | Select- 
        Object -ExpandProperty Name | Sort-Object -Descending
        for ($c = 0 ; $c -lt $ArchiveDataFilesList.count; $c++) {
            $ArchiveDataFile = $ArchiveDataFilesList.Item($c)

            if ((New-TimeSpan -Start ([DATETIME] ($ArchiveDataFile.ToString().SubString(8,15) -replace "_", " ").Insert(13, ":")) -End ((Get-Date).ToUniversalTime())).TotalHours -gt $ArchiveDataHours) {
                $ArchiveDataFileDepartureDateTime = ($ArchiveDataFile.ToString().SubString(8,15) -replace "_", " ").Insert(13, ":")
                $ArchiveDataFileAirlineCodeFlightNumber = $ArchiveDataFile.ToString().SubString(0,7)
                $ArchiveDataFileDepartureIATA = $ArchiveDataFile.ToString().SubString(24,3)
                $ArchiveDataFileArrivalIATA = $ArchiveDataFile.ToString().SubString(28,3)

                "---Archiving Release---
Flight Date/Time: $ArchiveDataFileDepartureDateTime
Flight: $ArchiveDataFileAirlineCodeFlightNumber
Departure: $ArchiveDataFileDepartureIATA
Arrival: $ArchiveDataFileArrivalIATA
File Name: $ArchiveDataFile
"

                $DateTimeNow = (Get-Date).ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") + "z"
                if (!(Test-Path "$PSScriptRoot\Log")) {
                    New-Item -Path "$PSScriptRoot\Log" -Type "directory"
                }
                if (!(Test-Path "$PSScriptRoot\Log\DataLog.txt")) {
                    New-Item -Path "$PSScriptRoot\Log" -Name "DataLog.txt" -Type "file"
                }
                Add-Content "$PSScriptRoot\Log\DataLog.txt" -value "---Archive Release--- 
$DateTimeNow
Flight Date/Time: $ArchiveDataFileDepartureDateTime
Flight: $ArchiveDataFileAirlineCodeFlightNumber
Departure: $ArchiveDataFileDepartureIATA
Arrival: $ArchiveDataFileArrivalIATA
File Name: $ArchiveDataFile
"

                if (!(Test-Path "$PSScriptRoot\Data")) {
                    New-Item -Path "$PSScriptRoot\Data" -Type "directory"
                }
                if (!(Test-Path "$PSScriptRoot\Archive")) {
                    New-Item -Path "$PSScriptRoot\Archive" -Type "directory"
                }
                Move-Item -Path "$PSScriptRoot\Data\$ArchiveDataFile" -Destination "$PSScriptRoot\Archive"
            }
        }
    }
}

Start-Job -InitializationScript $ArchiveDataFiles -ScriptBlock {
    Start-ArchiveDataFiles
} -Name ArchiveDataFiles

一个可能的问题是:如果
启动ArchiveDataFiles
是调用方作用域中的一个函数,则作业将看不到它。结果表明,您必须使用相对路径(C:)而不是$PSScriptRoot。我还必须调用底部的函数。}启动ArchiveDataFiles}