Windows Powershell 定義函數(shù)
函數(shù)是自定義的Powershell代碼,有三個(gè)原則:
簡短:函數(shù)名簡短,并且顯而易見。
聚合:函數(shù)可以完成多個(gè)操作。
封裝和擴(kuò)展:將一批Powershell語句進(jìn)行封裝,實(shí)現(xiàn)全新的功能需求。
函數(shù)的結(jié)構(gòu)由三部分組成:函數(shù)名,參數(shù),函數(shù)體
Function FuncName (args[])
{
code;
}
使用函數(shù)作為別名
假如Powershell不支持”cd..” 命令,你可以通過定義函數(shù)實(shí)現(xiàn)這個(gè)功能:
PS C:Powershell> Function cd.. { cd ..}
PS C:Powershell> cd..
PS C:>
假如Powershell不支持Ping命令,也可以如法炮制:
PS C:PowerShell> Function Ping2 { PING.EXE -n 1 $args }
PS C:PowerShell> Ping2 www.mossfly.com
正在 Ping mossfly.com [116.255.205.70] 具有 32 字節(jié)的數(shù)據(jù):
請求超時(shí)。
116.255.205.70 的 Ping 統(tǒng)計(jì)信息:
數(shù)據(jù)包: 已發(fā)送 = 1,已接收 = 0,丟失 = 1 (100% 丟失),
控制臺(tái)上多行輸入定義函數(shù)
PS C:PowerShell> Function MyPing
>> {
>> PING.EXE -n 1 $args
>> }
>>
PS C:PowerShell>
把函數(shù)精簡成一行
你 可以將一個(gè)函數(shù)定義在一行上,但是這樣閱讀和理解起來就不方便,可以在每條命令后加分號(hào)進(jìn)行分割。
PS C:PowerShelltest> Function cd...{ cd.. ; cd.. }
PS C:PowerShelltest> cd...
PS C:>
使用文本編輯器
函數(shù)可以在文本編輯器上編寫,寫完以后復(fù)制進(jìn)Powershell控制臺(tái)即可。如果控制臺(tái)設(shè)置為快速編輯模式,從記事本復(fù)制后,直接在控制臺(tái)鼠標(biāo)右鍵即可完成黏貼。
更新函數(shù)
如果要更新已經(jīng)定義好的函數(shù),簡單的方法是重新定義,這樣新的定義會(huì)覆蓋舊的定義。但是如果函數(shù)代碼沒有保存副本,可以先將函數(shù)定義導(dǎo)出到ps文件,然后就可以編輯了。
PS C:PowerShell> $function:MyPing | Out-File myPing.ps1
PS C:PowerShell> $function:MyPing
PING.EXE -n 1 $args
PS C:PowerShell> $function:MyPing | Out-File myPing.ps1
PS C:PowerShell> .myPing.ps1
必須指定 IP 地址。
PS C:PowerShell> notepad.exe $$
刪除函數(shù)
控制臺(tái)定義的函數(shù)只會(huì)在當(dāng)前會(huì)話生效,一旦控制臺(tái)退出,會(huì)自動(dòng)消失。在不關(guān)閉控制臺(tái)的條件下刪除一個(gè)已經(jīng)定義好的函數(shù),可是使用虛擬驅(qū)動(dòng)器的方法:
PS C:PowerShell> del Function:myPing
PS C:PowerShell> myPing
無法將“myPing”項(xiàng)識(shí)別為 cmdlet、函數(shù)、腳本文件或可運(yùn)行程序的名稱。請檢查名稱的
拼寫,如果包括路徑,請確保路徑正確,然后重試。
所在位置 行:1 字符: 7
+ myPing <<<<
+ CategoryInfo : ObjectNotFound: (myPing:String) [], CommandNotFo
undException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [3,General]: 未找到命令 myPing,但它確實(shí)存在于當(dāng)前位置。Windows Pow
Shell 默認(rèn)情況下不從當(dāng)前位置加載命令。如果信任此命令,請改為鍵入 ".myPing"。有
關(guān)更多詳細(xì)信息,請參閱 "get-help about_Command_Precedence"。
相關(guān)文章
Powershell訪問SQL Server數(shù)據(jù)庫代碼實(shí)例
這篇文章主要介紹了Powershell訪問SQL Server數(shù)據(jù)庫代碼實(shí)例,本文直接給出代碼,使用時(shí)只需要替換數(shù)據(jù)庫配置參數(shù)即可,需要的朋友可以參考下2014-11-11Powershell實(shí)現(xiàn)從注冊表獲取用戶配置腳本分享
這篇文章主要介紹了Powershell實(shí)現(xiàn)從注冊表獲取用戶配置腳本分享,本文直接給出實(shí)現(xiàn)腳本源碼,需要的朋友可以參考下2015-03-03PowerShell中定義哈希散列(Hash)和調(diào)用例子
這篇文章主要介紹了PowerShell中定義哈希散列(Hash)和調(diào)用例子,本文介紹在PowerShell中如何創(chuàng)建一個(gè)哈希變量,并且使用哈希變量,需要的朋友可以參考下2014-08-08Powershell使用OpenFileDialog打開文件示例
這篇文章主要介紹了Powershell使用OpenFileDialog打開文件示例,本文直接給出示例代碼,需要的朋友可以參考下2015-03-03PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧
這篇文章主要介紹了PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧,需要的朋友可以參考下2014-08-08Windows Powershell 命令集 cmdlets
在Windows PowerShell中,需要使用cmdlet執(zhí)行指令。一個(gè)cmdlet代表著可操作某一對象的功能命令,cmdlet可使用"動(dòng)詞-名詞"形式的語法:一個(gè)動(dòng)詞和一個(gè)名詞,中間使用連字符連接,例如get-service和start-service。2014-09-09Windows Powershell擴(kuò)展類型系統(tǒng)
本文主要詳細(xì)介紹了集中將對象轉(zhuǎn)換成文本的方法,并附上示例說明,非常的實(shí)用,有需要的朋友可以參考下2014-09-09