2013-03-13 3 views
0

У меня есть модуль с различными функциями. Недавно я добавил функцию. Эта функция принимает параметр, обрабатывает некоторые данные и вызывает другую функцию, которая находится внутри него. Эта функция принимает строковый массив в качестве параметра. Ниже приведен код:Функция вызова внутри функции, которая требует параметра в PowerShell 2.0

 Function Get-CMClientInstall{ 
     some code.......... 

     Analyze-ClientInstall $clientcheck 


     Function Analyze-ClientInstall 
     { 
      #[CmdletBinding()] 

      PARAM (
      [Parameter(Mandatory=$true)][string[]]$CCMClients) 
     } 
    } 

Ниже сообщение об ошибке:

The term 'Analyze-ClientInstall' 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 C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ConfigMgrCommands\ConfigMgrCommands.psm1:475 char:34 
+    Analyze-ClientInstall <<<< $clientcheck 
    + CategoryInfo   : ObjectNotFound: (Analyze-ClientInstall:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

Может кто-то пожалуйста, советы? Заранее спасибо.

ответ

1

PowerShell считывает файл и синхронизирует содержимое. Когда вы вызываете функцию, PowerShell не имеет понятия, что она существует, потому что она еще не интерпретировала ее. Перейдите для вызова функции ПОСЛЕ объявления функции.

Function Get-CMClientInstall{ 
    some code.......... 


    Function Analyze-ClientInstall 
    { 
     #[CmdletBinding()] 

     PARAM (
     [Parameter(Mandatory=$true)][string[]]$CCMClients) 
    } 


    Analyze-ClientInstall $clientcheck 
} 
+0

Спасибо, это сработало. – Rajiv

Смежные вопросы