日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有关PowerShell脚本你必须知道的十个基本概念

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有关PowerShell脚本你必须知道的十个基本概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、PS1文件

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

2、執行權限

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

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

Restricted - 腳本不能運行。
RemoteSigned - 本地創建的腳本可以運行,但從網上下載的腳本不能運行(除非它們擁有由受信任的發布者簽署的數字簽名)。
AllSigned – 僅當腳本由受信任的發布者簽名才能運行。
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 ID5、變量

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

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

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

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

$a = (Get-Process | Sort-Object ID)6、@符號

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

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

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

7、Split

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

"This is a test" -split " "拆分后的結果如下:

This is a test8、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不會逐步執行,整個函數將會一次性執行。

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的有关PowerShell脚本你必须知道的十个基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。