PowerShell / 使用筆記-如何將參數帶入.ps1檔

之前曾經在測試DLL的時候使用了PowerShell

最近剛好又翻到當時的測試檔

不過時間久了,如何執行.psl檔都沒印象了

這其中卡住最久的是如何將參數帶入.ps1檔

花了很多時間爬文之後,才搞清楚!!

還是筆記一下,做為日後的複習…

有2種將參數帶入.ps1檔的情況,先簡單說明

1.檔案本身就是一個連續的命令組成

也就是沒有特別再劃分為function

1
2
param ([string]$userName)
write-host "Hello"$userName

 

這就很單純,直接在.ps1檔名後空一格再接上參數

「.\」表示檔案在目前的工作目錄,也可以用絕對路徑

 

 

2.檔案內有function

1
2
3
4
function showName{
	param ([string]$userName)
	write-host "Hello"$userName		
}

 

如果直接按照前面的方式,在.ps1檔名後空一格接上參數

執行之後不會有任何反應

 

 

必須要用 「.」空一格載入.ps1,例如 .  .\hello2.ps1

然後 function名稱 參數,這樣才能正常執行,例如 showName trico

 

 

第1個「.」是dot-sourcing-operator

官方文件的說明:「在目前範圍中執行腳本,讓腳本建立的任何函式、別名和變數都會新增至目前的範圍,並覆寫現有的函式。 腳本所宣告的參數會變成變數。」

後面的 「.」是跟「\」結合成「.\」使用,表示在目前的工作目錄,在前面的例子有使用到


這個看似簡單,但卻是根本的操作

應該是沿用自其他程式語言吧

因為花了很多時間爬文才找到說明