PowerShell系列之PowerShell Cmdlet高級參數介紹
今天給大家講解PowerShell Cmdlet高級參數相關的知識,希望對大家學習PowerShell能有所幫助!
1、什么是高級參數
所謂的高級參數就是針對那些可以完成執行命令之外還可以提供其他高級功能的參數(比如顯示執行命令的信息、針對錯誤信息的處理方式、命令出現警告情況的處理方式等等)。使用較多的是New、Set、Remove等動詞命令支持高級參數的命令方式。下面給大家逐一介紹這些高級參數。
2、Verbose 參數
Verbose 參數主要用來顯示函數執行過程中通過Write-Verbose寫入的相關信息,如果命令執行當中有寫入則會有反饋信息輸出,反之則沒有任何信息輸出。
輸入如下命令。
get-childitem
get-childitem -verbose
可以看到兩者輸出的信息是一樣的,表明函數執行過程沒有寫入相關信息。
再執行創建文件命令。
額外輸出信息。
詳細信息: 正在目標“目標: D:\logs\端午節2.txt”上執行操作“創建文件”。
總結:針對獲取操作的命令函數執行過程一般沒有寫入相關信息。對應操作命令函數(新建、修改、刪除)一般都會有信息寫入。
3、Debug參數
Debug參數主要用來顯示函數執行過程中通過Write-Debug寫入的相關信息,該參數默認是不啟用的,需要通過執行命令當中增加 -Debug 參數來啟用。
和Verbose類似,如果沒有相應的調試信息輸出,也不會輸出任何信息,如果開啟該參數后,命令執行過程中涉及到參數調試,輸出的結果都會停下來等待人為干預是否執行下一步。這個和程序員平常的代碼調試比較相似,只是不能一次性看到所以的執行代碼罷了。
具體如下圖:
創建一個文件,增加-debug 參數會有確認提示,反之則沒有。
PS D:\logs> remove-item 端午節2.txt -debug
確認
是否確實要執行此操作?
正在目標“D:\logs\端午節2.txt”上執行操作“刪除文件”。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暫停(S) [?] 幫助 (默認值為“Y”): y
PS D:\logs> new-item 端午節2.txt
目錄: D:\logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2023/6/24 7:23 0 端午節2.txt
PS D:\logs> remove-item 端午節2.txt
4、ErrorAction 參數
ErrorAction 參數主要用來指定命令和腳本執行出現錯誤后的操作,對于PowerShell環境全局默認使用ErrorActionPreference參數指定出現錯誤后的操作,我們可以通過ErrorAction參數覆蓋默認的參數,從而滿足我們的使用要求。
ErrorAction 針對出錯命令提供的操作方式
● Continue:錯誤信息記錄到$Error變量,命令繼續往下執行。
● Ignore:忽略錯誤繼續往下執行,并且不記錄錯誤信息。
● Inquire:執行報錯后,詢問用戶是否繼續執行,錯誤信息會記錄到$Error變量。
● SlientContinue:命令執行出錯,既不停止執行也不顯示錯誤信息,錯誤信息也會被記錄到$Error變量。
● Stop:命令執行出錯立即停止執行,不會繼續執行后續代碼。
下面舉個例子,這里來刪除一個不存在的文件
首先執行。
remove-item 端午節2.txt -ErrorAction Ignore
因為這里指定的是Ignore參數,不會輸出錯誤信息也不會記錄到$Error變量里面去。
然后再執行。
remove-item 端午節2.txt -ErrorAction Continue
輸出如下錯誤信息。
remove-item : 找不到路徑“D:\logs\端午節2.txt”,因為該路徑不存在。
所在位置 行:1 字符: 1
+ remove-item 端午節2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (D:\logs\端午節2.txt:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
再執行$Error命令。
$Error
輸出了錯誤信息。
remove-item : 找不到路徑“D:\logs\端午節2.txt”,因為該路徑不存在。
所在位置 行:1 字符: 1
+ remove-item 端午節2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (D:\logs\端午節2.txt:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
具體執行可以查看如下截圖:
當然其他情況大家可以自己動手操作試試看!下篇文章會繼續介紹另外的高級參數。