主頁(yè) > 知識(shí)庫(kù) > PowerShell入門(mén)教程之函數(shù)、腳本、作用域介紹

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

熱門(mén)標(biāo)簽:新鄭電銷(xiāo)機(jī)器人一個(gè)月多少錢(qián) 如何根據(jù)經(jīng)緯度百度地圖標(biāo)注 六寸地圖標(biāo)注點(diǎn)怎么刪除 萬(wàn)全縣地圖標(biāo)注app 印臺(tái)區(qū)呼叫中心外呼系統(tǒng) 地圖標(biāo)注的圖案 莫拉克電梯系統(tǒng)外呼怎么設(shè)置 騰訊地圖標(biāo)注中心怎么標(biāo)注 電話機(jī)器人公司招聘

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

函數(shù)

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

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

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

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

function SayHello
{
   "Hello"
}

函數(shù)調(diào)用方法與使用Cmdlet方法相似,輸入SayHello,并回車(chē)。則結(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í)行策略會(huì)帶來(lái)安全隱患,修改執(zhí)行策略之前請(qǐng)三思。

簡(jiǎn)單腳本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(腳本作用域)。啟動(dòng)PowerShell命令行后,所有命令行命令在全局作用域中運(yùn)行。而腳本上下文在script作用域中運(yùn)行,運(yùn)行結(jié)束后腳本中定義的變量和函數(shù)不在可見(jiàn)。這是因?yàn)樵谀_本中定義的變量和函數(shù)默認(rèn)位于script作用域中。當(dāng)然也可以顯示定義變量和函數(shù)的作用域,比如function global:fun1 (){…}。這樣以來(lái),腳本執(zhí)行完之后,fun1還能夠在全局作用域中執(zhí)行。

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

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

  使用點(diǎn)".”獲取來(lái)源示例如下:

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

. d:\greet.ps1 "Luke"

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

. .\greet.ps1 "Luke"

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

結(jié)語(yǔ)

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

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

標(biāo)簽:臨汾 天水 湘潭 南昌 襄陽(yáng) 喀什 疫苗接種 汕頭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell入門(mén)教程之函數(shù)、腳本、作用域介紹》,本文關(guān)鍵詞  PowerShell,入門(mén)教程,之,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PowerShell入門(mén)教程之函數(shù)、腳本、作用域介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PowerShell入門(mén)教程之函數(shù)、腳本、作用域介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章