佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > PowerShell入門教程之函數(shù)、腳本、作用域介紹

PowerShell入門教程之函數(shù)、腳本、作用域介紹

熱門標(biāo)簽:鐵路電話系統(tǒng) AI電銷 地方門戶網(wǎng)站 服務(wù)外包 呼叫中心市場需求 網(wǎng)站排名優(yōu)化 Linux服務(wù)器 百度競價排名

腳本所體現(xiàn)的是PowerShell的編程特性,是任務(wù)自動化的基礎(chǔ)。函數(shù)是比腳本粒度更細(xì)的代碼復(fù)用單元,可以定義在命令行中或者腳本中。作用域就是變量和函數(shù)的作用范圍,是執(zhí)行上下文的劃分。

函數(shù)

  函數(shù)就是命名的命令列表,與一般編程語言中的函數(shù)概念具有相同的范疇。函數(shù)中不但可以有簡單命令,還可以有控制流程的命令,如if、while、switch等。函數(shù)可以有匿名參數(shù)或者命名參數(shù)列表。命令參數(shù)列表可以用大括號或者Param關(guān)鍵字定義。匿名函數(shù)可以使用$Args變量來訪問。函數(shù)也可接收來自管道的對象作為輸入,管道對象可以通過$input變量類訪問。

  在腳本中定義的函數(shù),可以定義在#require命令和Param關(guān)鍵字之后的任何位置,但要定義在調(diào)用之前。還有,自定義的函數(shù)不會自動運行,需要被明確調(diào)用??梢允褂胒ilter或者function定義函數(shù),用filter關(guān)鍵字定義的函數(shù)比較簡單,而使用function關(guān)鍵字定義的函數(shù)可以有更加復(fù)雜的功能。

  簡單函數(shù)定義示例如下:

復(fù)制代碼 代碼如下:

function SayHello
{
   "Hello"
}

函數(shù)調(diào)用方法與使用Cmdlet方法相似,輸入SayHello,并回車。則結(jié)果為Hello。

腳本

  腳本就是將一些命令存貯到文件文件中,并將該文本文件的擴(kuò)展名設(shè)置為.ps1。腳本中除了可以使用常用cmdlet,控制流程的命令外,還可以定義和調(diào)用自定義函數(shù),調(diào)用方法與調(diào)用cmdlet方法類似。

  腳本也可以有參數(shù),既可以是命名參數(shù)也可以是匿名參數(shù)。在參數(shù)的使用上,腳本與函數(shù)非常相似。

  另外,PowerShell的腳本執(zhí)行策略默認(rèn)不允許執(zhí)行任何腳本文件,修改執(zhí)行策略可執(zhí)行如下命令:Set-ExecutionPolicy RemoteSigned。需要謹(jǐn)記的是,修改執(zhí)行策略會帶來安全隱患,修改執(zhí)行策略之前請三思。

簡單腳本d:\greet.ps1示例如下

復(fù)制代碼 代碼如下:

Param([String] somebody)
 
function Greet([String] name)
{
    "Hello $name"
}
 
echo "Call function Greet ..."
Greet $somebody

腳本調(diào)用方法如下:
復(fù)制代碼 代碼如下:

d:\greet.ps1 "Luke"


復(fù)制代碼 代碼如下:

.\greet.ps1 "Luke"

以上腳本的執(zhí)行結(jié)果是,“Hello Luke”。

作用域

  按類型分,有兩種作用域:global(全局作用域)和script(腳本作用域)。啟動PowerShell命令行后,所有命令行命令在全局作用域中運行。而腳本上下文在script作用域中運行,運行結(jié)束后腳本中定義的變量和函數(shù)不在可見。這是因為在腳本中定義的變量和函數(shù)默認(rèn)位于script作用域中。當(dāng)然也可以顯示定義變量和函數(shù)的作用域,比如function global:fun1 (){…}。這樣以來,腳本執(zhí)行完之后,fun1還能夠在全局作用域中執(zhí)行。

  按軸關(guān)系分,可以有父作用域、本地作用域(當(dāng)前作用域)和子作用域。這些不是新的作用域類型,而是作用域之間的相對關(guān)系。子作用域還可以有子作用域,這個層次可以很深。

  除了可以將腳本中的變量和函數(shù)定義在全局作用域中,還可以使用點".”獲取來源,將一個普通腳本在本地作用域中執(zhí)行,執(zhí)行完畢退出腳本后,所有在腳本中定義的變量和函數(shù),在本地作用域中繼續(xù)可用。

  使用點".”獲取來源示例如下:

復(fù)制代碼 代碼如下:

. d:\greet.ps1 "Luke"

或者
復(fù)制代碼 代碼如下:

. .\greet.ps1 "Luke"

即點".”,空格,然后是一般腳本執(zhí)行方式。

結(jié)語

  函數(shù)、腳本和作用域,每個概念要說得詳細(xì)都得要很大的篇幅。這里只簡單說明它們的概念、彼此間的關(guān)系以及簡單的用法。讓讀者有個大概的印象,能夠拿來就用。

您可能感興趣的文章:
  • PowerShell入門教程之創(chuàng)建和使用配置文件實例
  • PowerShell入門教程之訪問.Net程序集、COM和WMI實例
  • PowerShell入門教程之PowerShell管道介紹
  • PowerShell入門教程之遠(yuǎn)程操作運行PowerShell的方法
  • PowerShell入門教程之Cmd命令與PowerShell命令相互調(diào)用的方法
  • PowerShell入門教程之高效使用PowerShell交互式運行環(huán)境的幾個小技巧
  • PowerShell入門教程之快速學(xué)習(xí)PowerShell的幾個方法
  • PowerShell入門教程之PowerShell和Cmd命令行的關(guān)系?
  • PowerShell入門教程之PowerShell有什么用?
  • PowerShell入門教程之編寫和使用腳本模塊實例

標(biāo)簽:蘭州 仙桃 黃山 湖南 衡水 湘潭 崇左 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell入門教程之函數(shù)、腳本、作用域介紹》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    姚安县| 双牌县| 东乌珠穆沁旗| 龙门县| 仁怀市| 长武县| 德庆县| 文昌市| 昭平县| 威海市| 防城港市| 益阳市| 尼勒克县| 云浮市| 沙田区| 安远县| 论坛| 东光县| 淮北市| 无为县| 宜章县| 兴安县| 德江县| 新安县| 当阳市| 江永县| 汉川市| 措勤县| 广昌县| 额尔古纳市| 贺兰县| 南郑县| 黑龙江省| 遂昌县| 武强县| 荆门市| 米脂县| 寻乌县| 江津市| 盐山县| 赤峰市|