मेरे पास निम्न कोड है।पावरहेल स्टार्ट-जॉब -स्क्रिप्टब्लॉक एक ही फ़ाइल में परिभाषित फ़ंक्शन को पहचान नहीं सकता है?
function createZip
{
Param ([String]$source, [String]$zipfile)
Process { echo "zip: $source`n --> $zipfile" }
}
try {
Start-Job -ScriptBlock { createZip "abd" "acd" }
}
catch {
$_ | fl * -force
}
Get-Job | Wait-Job
Get-Job | receive-job
Get-Job | Remove-Job
हालांकि, स्क्रिप्ट निम्न त्रुटि देता है।
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
309 Job309 Running True localhost createZip "a...
309 Job309 Failed False localhost createZip "a...
Receive-Job : The term 'createZip' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:17 char:22
+ Get-Job | receive-job <<<<
+ CategoryInfo : ObjectNotFound: (function:createZip:String) [Receive-Job], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
ऐसा लगता समारोह नाम start-job
की स्क्रिप्ट ब्लॉक के अंदर पहचाना नहीं जा सकता। मैंने function:createZip
भी कोशिश की।
धन्यवाद। ऐसा लगता है कि PowerShell के किसी अन्य उदाहरण में उठाए गए अपवाद को कैद नहीं किया जा सकता है। अपवाद को पकड़ने का सबसे अच्छा तरीका क्या है? – ca9163d9
@NickW आप निश्चित रूप से कर सकते हैं। मेरा अद्यतन उत्तर देखें। –
इसके लिए धन्यवाद - मेरे पास एक समान सवाल था और अब मैं सुनहरा हूँ! – marceljg