PowerShell(包括Windows PowerShell和PowerShell Core)是微軟公司開發的任務自動化和組態管理架構,由在.NET Framework和後來的.NET上構建的命令列介面殼層相關手稿語言組成,最初僅僅是Windows元件,後於2016年8月18日開源並提供跨平台支援。[4]
此條目可參照英語維基百科相應條目來擴充。 (2021年8月16日) |
編程範型 | 命令式、管道、物件導向、函數式、反射式 |
---|---|
設計者 | 傑弗里·史諾威(Jeffrey Snover) 布魯斯·帕耶特(Bruce Payette) 詹姆斯·特魯赫(James Truher) (et al.) |
實作者 | Microsoft |
釋出時間 | 2006年11月14日 |
目前版本 |
|
型態系統 | 強型別、類型安全、類型推論和動態型別 |
系統平台 | PowerShell: .NET Windows PowerShell: .NET框架 |
作業系統 | Windows 7及其後續版本、Linux、macOS |
特許條款 | MIT特許條款[2](但Windows組件仍然是專有的) |
副檔名 |
|
網站 | microsoft |
啟發語言 | |
Ksh、Perl、C#、CL、DCL、SQL、Tcl、Tk、[3]Chef、Puppet |
在PowerShell中,管理任務通常由cmdlets(發音為command-lets)執行,這是執行特定操作的專用.NET類。可以將cmdlet集合至指令碼、可執行檔案(一般是獨立應用程式)中,或通過常規.NET類(或WMI / COM對象)實例化。[5][6]
源起與目的
UNIX系統一直有着功能強大的殼程式(shell),Windows PowerShell的誕生就是要提供功能相當於UNIX系統的命令列殼程式(例如:sh、bash或csh),同時也內建手稿語言以及輔助指令碼程式的工具。
程式特性
- 一致性的設計讓所有工具和系統資料的使用語法、命名原則都相同。
- 手稿語言簡單易學,而且能支援現有的指令碼程式和命令列工具。
- 內含129種稱為cmdlet的標準工具,可用來處理常見的系統管理工作。
- 具備完整的擴充功能,獨立軟件商或開發者都能很容易的自行擴充。
- 行程間數據傳遞內容具有強型別特徵。
- PowerShell Core可以自動檢測字元編碼,自動識別Linux和Windows下的換行符,跨平台執行。
cmdlet是Windows PowerShell的指令,發音唸法為command-let。這相當於DOS或其他殼程式的內建指令,指令名稱的格式都是以連字號(-)隔開的一對動詞和名詞,並且通常都是單數名詞;例如線上查詢說明的cmdlet指令為get-help,名稱的動詞部分大致有get、set、add、remove等等(字母都不分大小寫)。
Windows PowerShell ISE是Windows PowerShell的主機應用程式。在此程式中,可以在單個Windows GUI中執行命令、編輯與測試指令碼。此程式具有多行編輯、Tab補齊、上下文相關幫助、語法着色、選擇性執行等功能,而且還支援從右到左的書寫順序等功能。
技術基礎
Windows PowerShell是以.NET Framework技術為基礎,並且與現有的WSH保持回溯相容,因此它的指令碼程式不僅能存取.NET CLR,也能使用現有的COM技術。同時也包含了數種系統管理工具、簡易且一致的語法,常見如登錄資料庫、WMI。Exchange Server 2007以及System Center Operations Manager 2007等伺服器軟件都將內建Windows PowerShell。
範例
- 停止所有目前執行中的以"p"字元開頭命名的程式:
get-process p* | stop-process
- 停止所有目前執行中的所有使用大於1000MB記憶體的程式:
get-process | where { $_.WS -gt 1000MB } | stop-process
- 計算一個目錄下檔案內的位元組大小:
get-childitem | measure-object -property length -sum
- 將"hello, world!"字串轉為英文大寫字元,成為"HELLO, WORLD!":
"hello, world!".ToUpper()
- 訂閱一個指定的RSS Feed並顯示它最近8個主題:
$rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"
$blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl)
$blog.rss.channel.item | select title -first 8
Windows PowerShell 3.0
參考文獻
擴展閱讀
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.