国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PowerShell > 正文

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

2020-03-26 19:13:51
字體:
來源:轉載
供稿:網友

腳本所體現的是PowerShell的編程特性,是任務自動化的基礎。函數是比腳本粒度更細的代碼復用單元,可以定義在命令行中或者腳本中。作用域就是變量和函數的作用范圍,是執行上下文的劃分。

函數

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

  在腳本中定義的函數,可以定義在#require命令和Param關鍵字之后的任何位置,但要定義在調用之前。還有,自定義的函數不會自動運行,需要被明確調用。可以使用filter或者function定義函數,用filter關鍵字定義的函數比較簡單,而使用function關鍵字定義的函數可以有更加復雜的功能。

  簡單函數定義示例如下:

復制代碼 代碼如下:

function SayHello
{
   "Hello"
}

函數調用方法與使用Cmdlet方法相似,輸入SayHello,并回車。則結果為Hello。

 

腳本

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

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

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

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

復制代碼 代碼如下:

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

腳本調用方法如下:
復制代碼 代碼如下:

d:/greet.ps1 "Luke"


復制代碼 代碼如下:

./greet.ps1 "Luke"

以上腳本的執行結果是,“Hello Luke”。

 

作用域

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

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

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

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

復制代碼 代碼如下:

. d:/greet.ps1 "Luke"

或者
復制代碼 代碼如下:

. ./greet.ps1 "Luke"

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

 

結語

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新宁县| 垫江县| 长丰县| 蓬安县| 龙泉市| 华蓥市| 汉寿县| 如东县| 达拉特旗| 墨玉县| 江门市| 正定县| 永顺县| 延边| 睢宁县| 蓝田县| 苍梧县| 军事| 措美县| 新竹市| 遵化市| 信宜市| 讷河市| 呼和浩特市| 栾城县| 麟游县| 浙江省| 柳江县| 罗城| 张家界市| 九江市| 翁源县| 遂溪县| 黄冈市| 赤城县| 时尚| 罗源县| 邢台市| 仙居县| 阳春市| 且末县|