Если вы все еще не знакомы с использованием start-job и receive-job и хотите более легко отлаживать свою функцию, попробуйте следующую форму:
$createZip = {
function createzipFunc {
param ([String]$source, [String]$zipfile)
Process { echo "zip: $source`n --> $zipfile" }
}
#other funcs and constants here if wanted...
}
# some secret sauce, this defines the function(s) for us as locals
invoke-expression $createzip
#now test it out without any job plumbing to confuse you
createzipFunc "abd" "acd"
# once debugged, unfortunately this makes calling the function from the job
# slightly harder, but here goes...
Start-Job -initializationScript $createZip -scriptblock {param($a,$b) `
createzipFunc $a $b } -ArgumentList "abc","def"
Все не упрощается тем, что я этого не делалопределил мою функцию как простой фильтр, как у вас, но я сделал это, потому что в конце я хотел передать несколько функций в мою работу.
Извините, что выкопал эту ветку, но это также решило мою проблемуи так элегантно в этом.И поэтому мне просто нужно было добавить немного соуса, который я написал во время отладки своей работы в PowerShell.