參考文章:
創新互聯從2013年成立,是專業互聯網技術服務公司,擁有項目成都網站建設、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元東川做網站,已為上家服務,為東川各地企業和個人服務,聯系電話:028-86922220Don Jones https://technet.microsoft.com/en-us/library/ff677563.aspx
powershell 幫助文檔:
help about_functions_advanced_parameters
help about_common_parameters
把這三部分內容都看完了,應該也大概了解函數中的CmdletBinding()是做什么用的了,官方的文檔都是英文的,看起來一般會頭大。以下就是我用通俗的語言來做的描述,更簡單易懂一些。
這個功能的引入是從Powershell Version 2開始的,叫做函數的高級功能,在函數的聲明出啟用以后,可以調用我們所說的通用參數:
-Verbose
-Debug
-ErrorAction
-WarningAction
-ErrorVariable
-WarningVariable
-OutVariable
-OutBuffer
-PipeLineVariable
通過放在函數開始部分可以很簡單的啟用訪問這些通用參數。如下所示:
[CmdletBinding()]
param()
啟用這個高級屬性以后,就可以很容易的通過像使用命令行一樣,給函數添加一些命令行的特色,調用命令很的通用參數。以下是一個最簡單的例子,打開一個ISE,把以下的內容復制下去:
function Go-Advanced {
[cmdletbinding()]param()
}
param() 這個關鍵字還是必須要有的,即使你沒有在函數中定義任何參數;
嘗試運行一下這個函數,然后再打一下中橫線,怎么樣,就看到能夠調用的這些通用參數了吧。
以下舉幾個例子來調用這些通用參數,先來說說Verbose的用法。
還是在ISE中輸入以下代碼
Function Go-Verbose {
[CmdletBinding()]Param()
Write-Verbose "Alright, you prefer talkative functions. First of all, I appreciate your wish to learn more about the common parameter -Verbose. Secondly, blah blah.."
Write-Host "This is self-explanatory, anyway."
}
再執行以下,看看是不是以下結果,通過這個例子,你就明白verbose是怎么出來的,這個單詞是很難翻譯的,只能是通過例子弄明白是什么意思。
再舉一個例子,就是調用ShouldContinue這個方法,這個在寫程序時還是很重要的,比如你想做一些破壞性的操作,程序寫的健壯是一定要跳一個框出來,問一下再去執行,那種SilientContinue做法不推薦。
以下還是代碼:
這段代碼還是要在函數執行時加一個 -confirm參數的。如果想不加這個參數也要跳出這個框來,這樣就需要一個額外的操作。把環境變量$ConfirmPreferece 設置成低??匆韵麓a和執行效果。
Function Remove-ByForce {
[CmdletBinding(SupportsShouldProcess)]
Param([String]$File)
$ConfirmPreference = "Low"
If ($PSCmdlet.ShouldContinue("Are you sure that you know what you are doing?","Delete with -Force parameter!")) {
Remove-Item $File -Force
} Else {
"Mission aborted!"
}
}
Remove-ByForce test
以上就是兩個基本的例子,接下來的文章會討論
param()中的[parameter()]對變量的影響。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站標題:Powershell函數中的CmdletBinding()是怎么回事?-創新互聯
分享地址:http://m.kartarina.com/article4/cdcsoe.html
成都網站建設公司_創新互聯,為您提供網站制作、全網營銷推廣、標簽優化、網站設計公司、網頁設計公司、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯