成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

有關PowerShell腳本你必須知道的十個基本概念

原創
系統 Windows
相對于傳統的命令行工具,PowerShell對很多用戶來說都會顯得非常陌生。PowerShell腳本提供了一個方便的方法來自動化各種瑣事。本文介紹了關于PowerShell的一些基本概念,對于PowerShell初學者,掌握這些概念有助于加深對PowerShell腳本的理解。

【51CTO精選譯文】PowerShell腳本提供了一個方便的方法來自動化各種瑣事。下面是關于PowerShell的一些基本概念,對于PowerShell初學者,掌握這些概念有助于加深對PowerShell腳本的理解。

51CTO推薦專題:Windows中的腳本技術-Windows Powershell

1、PS1文件

一個PowerShell腳本其實就是一個簡單的文本文件,這個文件包含了一系列PowerShell命令,每個命令顯示為獨立的一行,對于被視為PowerShell腳本的文本文件,它的文件名需要使用.PS1擴展。

2、執行權限

為防止惡意腳本的執行,PowerShell有一個執行策略,默認情況下,這個執行策略被設為受限的(Restricted),意味著PowerShell腳本無法執行,你可以使用下面的cmdlet命令確定當前的執行策略:

Get-ExecutionPolicy

你可以選擇使用的執行策略有:

  1. Restricted - 腳本不能運行。
  2. RemoteSigned - 本地創建的腳本可以運行,但從網上下載的腳本不能運行(除非它們擁有由受信任的發布者簽署的數字簽名)。
  3. AllSigned – 僅當腳本由受信任的發布者簽名才能運行。
  4. Unrestricted – 腳本執行不受限制,不管來自哪里,也不管它們是否有簽名。

你可以使用下面的cmdlet命令設置PowerShell的執行策略:

Set-ExecutionPolicy <policy name>

3、運行腳本

如果你想從命令行運行一個可執行文件,多年來一個永恒不變的方法是,在命令行轉到該執行文件所在的位置,然后鍵入該執行文件的名稱,但這個古老的方法現在卻不能適用于PowerShell可執行腳本了。

如果你想執行一個PowerShell腳本,通常必須鍵入完整的路徑和文件名,例如,假設你要運行一個名為SCRIPT.PS1的腳本,你可以鍵入:

C:\Scripts\Script.ps1

***的例外是,如果PowerShell腳本文件剛好位于你的系統目錄中,那么你可以直接在命令提示符后鍵入腳本文件名即可運行,如:

.\Script.ps1

注意前面需要加上.\,這和Linux下執行Shell腳本的方法如出一轍。

4、管道

管道的作用是將一個命令的輸出作為另一個命令的輸入,兩個命令(或cmdlet)之間只需要用管道符號(|)連接即可。

為了幫助你了解管道是如何工作的,我們以一個例子進行說明,假設你想創建運行在服務器上的進程列表,并按進程的ID號進行排序,可以使用Get-Process cmdlet命令獲得進程列表,但默認情況下列表不會排序,如果將這個cmdlet命令的輸出用管道輸送給Sort-Object ID命令,進程列表將會按進程ID號進行排序,如:

Get-Process | Sort-Object ID

5、變量

雖然可以使用管道將一個命令的輸出輸送給另一個命令,但管道本身也是有限制的,當你用管道從一個命令向另一個命令傳遞輸出結果時,輸出結果立即被使用,但有時候,你可能需要保存輸出結果一段時間,以便以后可以使用(或重用),這個時候管道就應該下場,輪到變量上場了。

人們很容易將變量想象成一個倉庫,但在PowerShell中,變量可以保存命令的完整輸出,例如,假設你想保存服務器處于運行中的進程列表,你可以將它賦給一個變量,如:

$a = Get-Process

在這里,變量被命名為$a,如果你想使用這個變量,只需要簡單地調用它的名稱即可,例如,鍵入$a便可在屏幕上打印變量的內容。

你可以將多個用管道連接的命令的最終輸出賦給一個變量,只需要用一對小括號將命令括起來即可,例如,假設你想按進程ID對運行中的進程進行排序,然后將結果輸出給一個變量,你可以使用下面這個命令:

$a = (Get-Process | Sort-Object ID)

6、@符號

通過使用@符號,你可以將列表內容轉換成一個數組,例如,下面的代碼創建了一個名為$Procs的變量,它包含多行文本內容(一個數組):

$procs = @{name="explorer","svchost"}

使用變量時你也可以使用@符號,為了確保它作為數組而不是單個值處理,例如,下面的代碼將在我前面定義的變量上運行Get-Process cmdlet命令:

Get-Process @procs

Windows將顯示Windows資源管理器和Svchost使用的所有進程,注意變量前使用的@符號,而不是常見的$符號。

7、Split

Split操作符根據你指定的字符拆分一個文本字符串,例如,假設你想將一個句子拆分成一個單詞組成的一個數組,你可以使用下面的命令做到:

"This is a test" -split " "

拆分后的結果如下:

This is a test

8、Join

就像Split可以將一個文本字符串拆分成多塊一樣,Join的操作則是逆向的,將多個獨立的塊連接成一個整體,例如,下面這行代碼將會創建一個文本字符串,由我的名字和姓氏組成:

"Brien","Posey" -join " "

命令末尾雙引號之間的空格告訴Windows在兩個文本字符串之間插入一個空格。

9、斷點

運行一個新創建的PowerShell腳本時,如果腳本有Bug,會遇到意想不到的后果,保護自己的一個方法是在腳本的關鍵位置插入斷點,這樣你就可以確保腳本正常運行先,然后再處理可能存在的問題。

插入斷點最簡單的方法是根據行號插入,例如,假設你要在第10行插入一個斷點,可以使用下面的命令:

New-PSBreakpoint -Script C:\Scripts\Script.ps1 -Line 10

你也可以將斷點綁定到變量上,如果你希望你的腳本任何時候都可以修改a$的內容,可以使用下面的命令:

New-PSBreakpoint -Script C:\scripts\Script.ps1 -variables a

注意,我在變量名后并沒有包括美元符號。

可以和PSBreakpoint一起使用的動詞包括New,Get,Enable,Disable和Remove。

10、Step

調試一個腳本時,有時可能需要逐行運行腳本,這時你可以使用Step-Into cmdlet命令,它會使腳本一行一行地執行,不管有沒有設置斷點,如果你想從這種步進式運行模式退出來,使用Step-Out cmdlet命令即可,但需要注意的是,使用Step-Out cmdlet命令后,斷點仍然有效。

順便說一句,如果你的腳本使用了函數,你可能對Step-Out cmdlet更感興趣,Step-Out的工作方式和Step-Into一樣,不過,如果調用了一個函數,Windows不會逐步執行,整個函數將會一次性執行。 

【51CTO.com譯文,轉載請注明原文作譯者和出處。】

原文:10 fundamental concepts for PowerShell scripting

【編輯推薦】

  1. PowerShell與Unix Shell對比:八大實例
  2. 替代活動目錄管理的PowerShell命令
  3. Windows PowerShell 的新增功能
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2011-05-11 15:28:05

2021-09-15 09:20:37

Python函數代碼

2011-06-13 13:54:18

SEO

2023-11-13 08:18:56

2022-06-08 10:42:34

ReduceJavaScript技巧

2023-12-12 17:46:33

系統kswapd0內核

2018-01-31 10:58:27

2024-12-16 08:11:45

Python系統調用

2023-02-06 16:46:59

JavaScript程序員技巧

2023-05-11 16:29:39

Javascript開發前端

2010-05-04 08:58:02

.NET

2021-05-26 08:00:00

微服務開發求職

2015-07-23 10:37:13

Linux命令

2022-06-12 23:43:19

SQL數據函數

2022-07-26 09:09:23

Python編程語言代碼

2022-10-17 15:33:46

前端開發數組

2023-08-24 14:25:00

開源項目碼云

2022-03-22 23:18:55

SQL技術內部概念

2024-05-17 16:18:27

2012-09-29 09:22:24

.NETGC內存分配
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品国产成人国产三级 | 日韩视频在线免费观看 | 中文字幕亚洲视频 | 欧美精产国品一二三区 | 九九综合 | 99精品久久 | 精品无码久久久久久国产 | 一区二区精品在线 | 久久伊人精品 | 亚洲国产一区二区三区在线观看 | 亚洲精品久久久一区二区三区 | 色资源站 | 国产不卡一区 | 天天拍天天射 | 亚洲欧美综合 | 国产高清久久久 | 国产精品久久久久久久久久久新郎 | 午夜免费电影 | 成人精品一区二区户外勾搭野战 | 亚洲交性 | 毛色毛片免费看 | 国产aⅴ爽av久久久久久久 | 99视频在线免费观看 | 久久精品一区二区三区四区 | 日韩中文字幕在线播放 | 日韩中文字幕一区 | 国产精品九九九 | 亚洲手机视频在线 | 亚洲 精品 综合 精品 自拍 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 日本三级线观看 视频 | 伊人久久精品 | 国产精品久久a | a级在线观看 | 一级黄a | 日韩色图在线观看 | 婷婷一级片 | 日韩三级 | 99热首页 | 97人人草 | 97精品超碰一区二区三区 |