Windows Powershell 定義函數_PowerShell

來源:互聯網
上載者:User

函數是自訂的Powershell代碼,有三個原則:
簡短:函數名簡短,並且顯而易見。
彙總:函數可以完成多個操作。
封裝和擴充:將一批Powershell語句進行封裝,實現全新的功能需求。

函數的結構由三部分組成:函數名,參數,函數體

複製代碼 代碼如下:

Function FuncName (args[])
{
      code;
}

使用函數作為別名

假如Powershell不支援”cd..” 命令,你可以通過定義函數實現這個功能:

複製代碼 代碼如下:

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 位元組的資料:
請求逾時。

116.255.205.70 的 Ping 統計資訊:
    資料包: 已發送 = 1,已接收 = 0,丟失 = 1 (100% 丟失),

控制台上多行輸入定義函數

複製代碼 代碼如下:

PS C:PowerShell> Function MyPing
>> {
>> PING.EXE  -n 1 $args
>> }
>>
PS C:PowerShell>

把函數精簡成一行

你 可以將一個函數定義在一行上,但是這樣閱讀和理解起來就不方便,可以在每條命令後加分號進行分割。

複製代碼 代碼如下:

PS C:PowerShelltest> Function cd...{ cd.. ; cd.. }
PS C:PowerShelltest> cd...
PS C:>

使用文字編輯器

函數可以在文字編輯器上編寫,寫完以後複製進Powershell控制台即可。如果控制台設定為快速編輯模式,從記事本複製後,直接在控制台滑鼠右鍵即可完成黏貼。

更新函數

如果要更新已經定義好的函數,簡單的方法是重新定義,這樣新的定義會覆蓋舊的定義。但是如果函數代碼沒有儲存副本,可以先將函數定義匯出到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 $$

刪除函數

控制台定義的函數只會在當前會話生效,一旦控制台退出,會自動消失。在不關閉控制台的條件下刪除一個已經定義好的函數,可是使用虛擬磁碟機的方法:

複製代碼 代碼如下:

PS C:PowerShell> del Function:myPing
PS C:PowerShell> myPing
無法將“myPing”項識別為 cmdlet、函數、指令檔或可運行程式的名稱。請檢查名稱的
拼字,如果包括路徑,請確保路徑正確,然後重試。
所在位置 行:1 字元: 7
+ myPing <<<<
    + CategoryInfo          : ObjectNotFound: (myPing:String) [], CommandNotFo
   undException
    + FullyQualifiedErrorId : CommandNotFoundException

Suggestion [3,General]: 未找到命令 myPing,但它確實存在於當前位置。Windows Pow
Shell 預設情況下不從當前位置載入命令。如果信任此命令,請改為鍵入 ".myPing"。有
關更多詳細資料,請參閱 "get-help about_Command_Precedence"。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.