Powershell Не удается преобразовать значение типа System.String в тип System.Management.Automation.ScriptBlock

Я новичок в этой работе. Я получаю сообщение об ошибке: Не удается связать параметр «ScriptBlock». Не удается преобразовать | .\test7\test7-2.ps1 типа System.String для типа System.Management.Automation.ScriptBlock. Может ли кто-нибудь сказать мне и выяснить, что здесь происходит?

$importCsv = ".\testData.csv"
$dir = "test\"
$main = ".\test7\test7-2.ps1"

$csv = GetCsv $importCsv

foreach ($i in $csv){
   Start-Job -ScriptBlock $main -ArgumentList @($dir,$i.ip,$i.openTime,$i.closeTime)
}

$main здесь:


function Main {

    param ($directory, $itemIp, $itemOpen, $itemClose)

    $ipAddress = $itemIp
    $openTime = $itemOpen
    $closeTime = $itemClose

    $date = Get-Date -Format "yyyy-MM-dd"
    $storeFolder = addFolder $directory $ipAddress
    $todayDir = addFolder $storeFolder $date
    $pingFile = addFile $todayDir
    
    Write-Host "Date : $date" 
    Write-Host "Store Folder : $storeFolder" 
    Write-Host "Today Folder : $todayDir" 
    Write-Host "File path : $pingFile." 
    Write-Host "ip address : $ipAddress" 
    Write-Host "Open Time : $openTime" 
    Write-Host "Close Time : $closeTime" 
    
    $time = Get-Date -Format "HH:mm"
    Write-Host "Time : $time"
    Compare-Time $time $openTime $closeTime $timeNow $ping4 $ping15 $ipAddress $pingFile 4 3 15 1

}

Затем я также попробовал так: $main = .\test\test7-2.ps1, но он возвращает Невозможно связать аргумент с параметром «ScriptBlock», потому что он | нулевой.


person bah    schedule 18.02.2021    source источник
comment
Блоки скриптов определяются с помощью фигурных скобок { code... }. Посмотрите здесь для некоторых примеров использования для Start-Job и здесь подробнее о блоках сценариев   -  person Daniel    schedule 18.02.2021
comment
убедитесь, что параметры в вашем main находятся в том же порядке, что и ваш список аргументов в start-job.   -  person Peter the Automator    schedule 18.02.2021