微軟是一個很」低調」的公司,取名爲微軟,感受有「微微軟下去」的意思,這是個玩笑了。windows 操做系統 和office辦公軟件,如此之優秀,微軟也沒敢命名爲PowerOS 和 PowerOffice,可是在Monad(PowerShell的前身)發佈後的第二年(2006年),微軟就直接就發佈了Windows PowerShell 1.0,而且」大言不慚「地命名爲PowerShell,這也有點太不淡定了。html
今天我根據本身的體驗來稍微總結一下爲何PowerShell如此之強大。shell
諸如存儲計算中GB,MB,KB單位等;數組聲明中的1..n和下標爲-1的處理;還有所見即所得,通俗易懂的動詞+名詞結構Cmdlet。數組
與面向過程相比,面向對象更方便更容易描述現實世界,也算遇上了時髦。ide
正所謂大樹下面好乘涼,PowerShell綁上.NET這個大款了,藉助.NET Framework平臺強大的類庫,幾乎讓一切都成爲可能。ui
徹底兼容windows 平臺上其它調用,如可執行文件(exe),批處理bat和vb script等。spa
微軟有個優勢,與應用相比,它更喜歡作平臺。PowerShell早已變成一個平臺,在PowerShell 剛發佈的第二年,微軟的System Center Operations Manager 和 SharePoint就提供了針對該平臺的組件,後來的活動目錄,Hyper-V,Windows Azure,Office 365就更不用說了。除了微軟,亞馬遜的雲平臺管理,Dell的out-of-hand 管理,也都提供了基於PowerShell的管理組件。PowerShell 儼然變成了一個標準,變成了一個規範。操作系統
若是您第一次據說過PowerShell,想稍微觀望下,且看下面的10個例子。.net
1
2
|
PS> (39+79-51)*497/28
1189.25
|
1
2
3
4
5
6
7
8
|
$now
=
Get-Date
$day
=
[datetime]
'2-14'
if
(
$now
-lt
$day
){
$day
.Subtract(
$now
).TotalMinutes
}
else
{
$day
.AddYears(1).Subtract(
$now
).TotalMinutes
}
|
1
2
|
PS> 3gb
-gt
3145726kb
True
|
1
2
3
4
5
|
PS>
[guid]
::NewGuid()
Guid
----
0f283ab4-f402-400c-98ce-359442f11f1a
|
1
|
dir
$env:windir
-Filter
*.exe | measure
-Sum
Length
|
1
|
(
Get-ItemProperty
-Path
hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit
|
1
2
|
ls Cert:\LocalMachine\My\ |
where {
$_
.Thumbprint
-eq
'28DE15612AFF1CD69596AB17AF06AE86CB9C003B'
}
|
1
|
Get-Service
spooler
|
1
|
(
Get-Process
iexplore ).count
|
1
|
Get-Process
|
ConvertTo-Html
|
Out-File
a.html
|
更多內容請參閱:PowerShell在線教程code