2017-08-04 102 views
0

術語「AutomatedTest」沒有被識別爲cmdlet的名字......PowerShell函數無法識別

,但我不知道爲什麼。

但PowerShell ISE中的作品,

功能如下

if($DefaultPool.GetMachines().Name -eq $TestMachineOne) 
{ 
    MultiMachineTest 
}else{ 
    AutomatedTest 
} 

function AutomatedTest() 
{ 
    Write-host "test" 
} 
+3

在你的調用之前移動你的函數定義。它在ISE中起作用,因爲你已經運行了你的腳本,所以上一次運行的內存中的函數。 – JohnLBevan

回答

1

以便它在執行前加載在你的腳本的頂部添加您的功能。

function AutomatedTest() 
{ 
    Write-host "test" 
} 

if($DefaultPool.GetMachines().Name -eq $TestMachineOne) 
    { 
     MultiMachineTest 
    }else{ 
     AutomatedTest 
    } 
+0

但我遵循這一點,沒有響應,不寫主機測試 – JeffQooQa

+0

如果沒有響應,這是因爲'$ DefaultPool.GetMachines()。Name'不等於'$ TestMachineOne'。在條件中反轉你的2個函數,看看會發生什麼。 – Manu

+0

謝謝。它已經解決了。 – JeffQooQa