2017-06-21 229 views
0

我有一個PowerShell腳本,並在其中定義了一個命令列表。 我試圖在運行時在Gitlab CI中創建一個構建步驟,執行特定的腳本。 爲此,我想先了解: 如何從命令行運行Powershell的特定命令/函數?如何從命令行運行Powershell的特定命令/函數?

我已閱讀 Invoking a specific function from PowerShell script from C#Calling Powershell functions from C#

的答案是特定於C#。 有沒有什麼辦法可以從命令行執行?

代碼看起來有點像這樣(myPowerScript.ps1) 我的powershell腳本中有多個函數。它是這樣的:

  function foo1{ 
     Param($Parameter1, 
     $Parameter2)# 
     # Foo1 implementation 
     } 


     function foo2{ 
     Param($Parameter1, 
     $Parameter2)# 
     # Foo2 implementation 
     } 

     function foo3{ 
     Param($Parameter1, 
     $Parameter2)# 
     # Foo3 implementation 
     } 

我想調用foo2:我​​該怎麼做?在這種情況下,PowerShell如何理解哪個函數被調用?

+0

只需調用[powershell.exe](https://msdn.microsoft.com/en-us/powershell/scripting/core-powershell/console/powershell.exe-command-line-help)。 –

+0

PowerShell控制檯_is_命令行。 –

回答

0

你的劇本 「stuff.ps1」:

Param($Parameter1, 
     $Parameter2) 

function Do-Stuff 
param($Parameter1, 
     $Parameter2) 

#do stuff 
} 

Do-Stuff "Value1" "$Value2" 

從從命令行運行你的ps腳本:

powershell.exe -file "stuff.ps1" "ValueforParam1" "ValueForParam2" 
+0

我的powershell腳本中有多個函數。它是這樣的: 功能foo1 { 參數($參數1, $參數2)# #Foo1實施 } 功能foo2的{ 參數($參數1, $參數2)# #foo2的實施 } function foo3 Param($ Parameter1, $ Parameter2)# #Fo31 implementation }所以在這種情況下,powershell如何理解哪個函數被調用? –

+0

設置一些參數來定義哪個函數應該運行If($ this -eq that){#Call function} – guiwhatsthat

0

這工作:

powershell -command "& { script1.ps; My-Func }" 

例子:

powershell -command "& { mypowerScript.ps; foo2 }"