Multithreading 多线程PowerShell脚本

Multithreading 多线程PowerShell脚本,multithreading,powershell,csv,Multithreading,Powershell,Csv,我制作了一个PowerShell脚本,它从CSV文件中获取数据,对数据进行排序并创建一个新的CSV文件 这个文件大约50mb,这使得我的脚本速度非常慢 我想让我的脚本多线程兼容,但是我在使用Start Job-Script block命令时遇到了问题 如果使用此命令,将不会创建新文件 你能看出我在剧本中的错误吗 谢谢你的帮助 [CmdletBinding(DefaultParameterSetName='Parameter Set 1', SupportsShouldProcess=$t

我制作了一个PowerShell脚本,它从CSV文件中获取数据,对数据进行排序并创建一个新的CSV文件

这个文件大约50mb,这使得我的脚本速度非常慢

我想让我的脚本多线程兼容,但是我在使用Start Job-Script block命令时遇到了问题

如果使用此命令,将不会创建新文件

你能看出我在剧本中的错误吗

谢谢你的帮助

    [CmdletBinding(DefaultParameterSetName='Parameter Set 1',
SupportsShouldProcess=$true,
PositionalBinding=$false,
HelpUri = 'http://www.microsoft.com/',
ConfirmImpact='Medium')]
[Alias()]
[OutputType([String])]
Param (
# Param1 Pathvariable
[Parameter(Mandatory=$false, # Change this to $false.
Position=0,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
ValueFromRemainingArguments=$false, 
ParameterSetName='Parameter Set 1')]
$Path = 'C:\Users\xyc\Desktop\Sheduling\Aufgabe\AccountingData\AccountingList.csv',
$ExportPath = 'C:\Users\xyc\Desktop\Sheduling\Aufgabe\ExportCSV\SortedData\AccountingListSort.csv',
$MultiThread = 'Start-Job'
)



begin {
}

process { 

    $MultiThread | Start-Job -ScriptBlock {
    $ExcludedJobs = @('EndPoint',
    'RecoveryJobNetEndPoint',
    'RecoveryJobNetStartPoint',
    'StartPoint')
    $Accountdata = Get-Content -Path $Path | convertfrom-csv -Delimiter ';' 
    $FilteredData = $Accountdata | Where-Object {$ExcludedJobs -notcontains $_.Jobname} 
    $GroupData = $FilteredData | Group-Object 'AccountNo' | Select-Object @{label='Accountnummer'; expression={$_.Name}}, @{label='Anzahl Jobs'; expression={$_.Count}}
    $GroupData | Export-Csv -path $ExportPath -NoTypeInformation -Delimiter ';'
    }

}


end {
}

作业中不存在您的变量。使用参数
-ArgumentList
使其可用。您好,谢谢您的回复。我必须在哪里添加参数-参数列表?好的,我知道了!-ArgumentList参数不支持位于脚本块末尾。作业中不存在您的变量。使用参数
-ArgumentList
使其可用。您好,谢谢您的回复。我必须在哪里添加参数-参数列表?好的,我知道了!-ArgumentList参数支持位于脚本块末尾。