Я создал скрипт PowerShell, который берет данные из файла CSV, сортирует эти данные и создает новый файл CSV.
Файл размером около 50 МБ, что делает мой сценарий мучительно медленным.
Я хочу сделать мой Script Multithreading совместимым, но у меня возникли проблемы с командой блока 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 {
}