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