之前曾經在測試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
官方文件的說明:「在目前範圍中執行腳本,讓腳本建立的任何函式、別名和變數都會新增至目前的範圍,並覆寫現有的函式。 腳本所宣告的參數會變成變數。」
後面的 「.」是跟「\」結合成「.\」使用,表示在目前的工作目錄,在前面的例子有使用到
這個看似簡單,但卻是根本的操作
應該是沿用自其他程式語言吧
因為花了很多時間爬文才找到說明