PowerShell系列之PowerShell Cmdlet高級參數(shù)介紹

今天給大家講解PowerShell Cmdlet高級參數(shù)相關的知識,希望對大家學習PowerShell能有所幫助!
1、什么是高級參數(shù)
所謂的高級參數(shù)就是針對那些可以完成執(zhí)行命令之外還可以提供其他高級功能的參數(shù)(比如顯示執(zhí)行命令的信息、針對錯誤信息的處理方式、命令出現(xiàn)警告情況的處理方式等等)。使用較多的是New、Set、Remove等動詞命令支持高級參數(shù)的命令方式。下面給大家逐一介紹這些高級參數(shù)。
2、Verbose 參數(shù)
Verbose 參數(shù)主要用來顯示函數(shù)執(zhí)行過程中通過Write-Verbose寫入的相關信息,如果命令執(zhí)行當中有寫入則會有反饋信息輸出,反之則沒有任何信息輸出。
輸入如下命令。
get-childitem
get-childitem -verbose
可以看到兩者輸出的信息是一樣的,表明函數(shù)執(zhí)行過程沒有寫入相關信息。
再執(zhí)行創(chuàng)建文件命令。

額外輸出信息。
詳細信息: 正在目標“目標: D:\logs\端午節(jié)2.txt”上執(zhí)行操作“創(chuàng)建文件”。總結:針對獲取操作的命令函數(shù)執(zhí)行過程一般沒有寫入相關信息。對應操作命令函數(shù)(新建、修改、刪除)一般都會有信息寫入。
3、Debug參數(shù)
Debug參數(shù)主要用來顯示函數(shù)執(zhí)行過程中通過Write-Debug寫入的相關信息,該參數(shù)默認是不啟用的,需要通過執(zhí)行命令當中增加 -Debug 參數(shù)來啟用。
和Verbose類似,如果沒有相應的調試信息輸出,也不會輸出任何信息,如果開啟該參數(shù)后,命令執(zhí)行過程中涉及到參數(shù)調試,輸出的結果都會停下來等待人為干預是否執(zhí)行下一步。這個和程序員平常的代碼調試比較相似,只是不能一次性看到所以的執(zhí)行代碼罷了。
具體如下圖:
創(chuàng)建一個文件,增加-debug 參數(shù)會有確認提示,反之則沒有。
PS D:\logs> remove-item 端午節(jié)2.txt -debug
確認
是否確實要執(zhí)行此操作?
正在目標“D:\logs\端午節(jié)2.txt”上執(zhí)行操作“刪除文件”。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暫停(S) [?] 幫助 (默認值為“Y”): y
PS D:\logs> new-item 端午節(jié)2.txt
目錄: D:\logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2023/6/24 7:23 0 端午節(jié)2.txt
PS D:\logs> remove-item 端午節(jié)2.txt
4、ErrorAction 參數(shù)
ErrorAction 參數(shù)主要用來指定命令和腳本執(zhí)行出現(xiàn)錯誤后的操作,對于PowerShell環(huán)境全局默認使用ErrorActionPreference參數(shù)指定出現(xiàn)錯誤后的操作,我們可以通過ErrorAction參數(shù)覆蓋默認的參數(shù),從而滿足我們的使用要求。
ErrorAction 針對出錯命令提供的操作方式
● Continue:錯誤信息記錄到$Error變量,命令繼續(xù)往下執(zhí)行。
● Ignore:忽略錯誤繼續(xù)往下執(zhí)行,并且不記錄錯誤信息。
● Inquire:執(zhí)行報錯后,詢問用戶是否繼續(xù)執(zhí)行,錯誤信息會記錄到$Error變量。
● SlientContinue:命令執(zhí)行出錯,既不停止執(zhí)行也不顯示錯誤信息,錯誤信息也會被記錄到$Error變量。
● Stop:命令執(zhí)行出錯立即停止執(zhí)行,不會繼續(xù)執(zhí)行后續(xù)代碼。
下面舉個例子,這里來刪除一個不存在的文件
首先執(zhí)行。
remove-item 端午節(jié)2.txt -ErrorAction Ignore因為這里指定的是Ignore參數(shù),不會輸出錯誤信息也不會記錄到$Error變量里面去。
然后再執(zhí)行。
remove-item 端午節(jié)2.txt -ErrorAction Continue輸出如下錯誤信息。
remove-item : 找不到路徑“D:\logs\端午節(jié)2.txt”,因為該路徑不存在。
所在位置 行:1 字符: 1
+ remove-item 端午節(jié)2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (D:\logs\端午節(jié)2.txt:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand再執(zhí)行$Error命令。
$Error輸出了錯誤信息。
remove-item : 找不到路徑“D:\logs\端午節(jié)2.txt”,因為該路徑不存在。
所在位置 行:1 字符: 1
+ remove-item 端午節(jié)2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (D:\logs\端午節(jié)2.txt:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand具體執(zhí)行可以查看如下截圖:

當然其他情況大家可以自己動手操作試試看!下篇文章會繼續(xù)介紹另外的高級參數(shù)。
























