powershell和cmd区别是什么
本文操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
powershell和cmd區(qū)別:
最淺顯的區(qū)別就是:CMD寫的BAT腳本我們看作是面向過程的,直白點(diǎn)說就是你是從計(jì)算機(jī)執(zhí)行的流程來編寫腳本的。而PowerShell則是面向?qū)ο蟮?是一種站在使用者的角度進(jìn)行腳本的編寫.
功能上:
CMD只能執(zhí)行基本的任務(wù),本身并沒有集成太多的功能,大多依賴于第三方的程序,比如PING命令,其實(shí)是一個(gè)單獨(dú)的應(yīng)用程序,而不是CMD本身的一條命令。
PowerShell因?yàn)槭腔?NET面向?qū)ο蟮?而且本身就內(nèi)置了非常多的命令。使得它不管從功能上還是性能上都要比CMD要強(qiáng)大得多。
可以這么說,CMD能辦的事,PowerShell基本都就能辦,但PowerShell能辦的事,CMD遙不可及。
目前唯一CMD比PowerShell強(qiáng)的一點(diǎn)就是所有版本的Windows中都自帶有CMD,包括XP和2003這些很老的操作系統(tǒng),而PowerShell要在XP和2003里用起來,就需要使用安裝包安裝.但這不熟于技術(shù)范疇,只是目前的環(huán)境造就了這個(gè)優(yōu)勢(shì),而且不久的將來,這個(gè)微弱的優(yōu)勢(shì)也將不復(fù)存在,因?yàn)樾掳姹镜腤indows中都已經(jīng)內(nèi)置了PowerShell了。
powershell的優(yōu)點(diǎn)
沒有做不到,只有想不到。用 PowerShell 甚至可以 Load C/C++ 寫的 dll,然后執(zhí)行里面的代碼,COM 就不說了。跑題了,題主問不同,竊以為 PowerShell 和 cmd 最大的不同,并且也是和其它 *nix Shell 最大的不同在于 PowerShell 的 pipe 傳遞的是 .net object,而不是 raw 字符串,于是這就打開了一扇神奇的大門,因?yàn)?PowerShell 的一切組件都可以和諧地共存,彼此不用互相猜忌,不用猜你喂給我的數(shù)據(jù)合不合法,也不用擔(dān)心我喂給你的參數(shù)格式對(duì)不對(duì)。大家共享一個(gè) CLR,擁有豐富的 metadata,自由自在地在 .net 的世界里徜徉和探索。順帶宣傳一下 https://chocolatey.org/ ,Windows 的 apt-get,基于 PowerShell
PowerShell為什么強(qiáng)大
微軟是一個(gè)很”低調(diào)”的公司,取名為微軟,感覺有“微微軟下去”的意思,這是個(gè)玩笑了。windows 操作系統(tǒng) 和office辦公軟件,如此之優(yōu)秀,微軟也沒敢命名為PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)發(fā)布后的第二年(2006年),微軟就直接就發(fā)布了Windows PowerShell 1.0,并且”大言不慚“地命名為PowerShell,這也有點(diǎn)太不淡定了。
今天我根據(jù)自己的體驗(yàn)來稍微總結(jié)一下為什么PowerShell如此之強(qiáng)大。
破天荒的方便
諸如存儲(chǔ)計(jì)算中GB,MB,KB單位等;數(shù)組聲明中的1..n和下標(biāo)為-1的處理;還有所見即所得,通俗易懂的動(dòng)詞+名詞結(jié)構(gòu)Cmdlet。
面向?qū)ο?/strong>
與面向過程相比,面向?qū)ο蟾奖愀菀酌枋霈F(xiàn)實(shí)世界,也算趕上了時(shí)髦。
綁上.NET這棵大樹
正所謂大樹下面好乘涼,PowerShell綁上.NET這個(gè)大款了,借助.NET Framework平臺(tái)強(qiáng)大的類庫,幾乎讓一切都成為可能。
強(qiáng)大的兼容性
完全兼容windows 平臺(tái)上其它調(diào)用,如可執(zhí)行文件(exe),批處理bat和vb script等。
基于平臺(tái)的可擴(kuò)展性
微軟有個(gè)優(yōu)點(diǎn),與應(yīng)用相比,它更喜歡做平臺(tái)。PowerShell早已變成一個(gè)平臺(tái),在PowerShell 剛發(fā)布的第二年,微軟的System Center Operations Manager 和 SharePoint就提供了針對(duì)該平臺(tái)的組件,后來的活動(dòng)目錄,Hyper-V,Windows Azure,Office 365就更不用說了。除了微軟,亞馬遜的云平臺(tái)管理,Dell的out-of-hand 管理,也都提供了基于PowerShell的管理組件。PowerShell 儼然變成了一個(gè)標(biāo)準(zhǔn),變成了一個(gè)規(guī)范。
舉例介紹
如果您第一次聽說過PowerShell,想稍微觀望下,且看下面的10個(gè)例子。
[數(shù)學(xué)計(jì)算] (39+79-51)*497/28 = ?
心算再快,應(yīng)當(dāng)也沒有敲回車鍵快吧:
| 1 2 |
PS> (39+79-51)*497/28
1189.25
|
[日期] 距離下一個(gè)情人節(jié)還有多少分鐘?
我知道距離多少天好算,如果變成分鐘呢?
| 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
}
|
[容量] 3GB > 3145726KB嗎 ?
| 1 2 |
PS> 3gb -gt 3145726kb
True
|
[ID]能產(chǎn)生一個(gè)GUID嗎?
| 1 2 3 4 5 |
PS> [guid]::NewGuid()
Guid
----
0f283ab4-f402-400c-98ce-359442f11f1a
|
[文件] Windows目錄下所有可執(zhí)行文件exe的大小是多少?
| 1 |
dir $env:windir -Filter *.exe | measure -Sum Length
|
[注冊(cè)表] 注冊(cè)表路徑HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 下 ‘Enable64Bit'的值是多少?
| 1 |
(Get-ItemProperty -Path hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit
|
[證書] 指紋為[28DE15612AFF1CD69596AB17AF06AE86CB9C003B]的證書在證書存儲(chǔ)區(qū)嗎?
| 1 2 |
ls Cert:\LocalMachine\My\ |
where { $_.Thumbprint -eq '28DE15612AFF1CD69596AB17AF06AE86CB9C003B' }
|
[服務(wù)] 打印機(jī)服務(wù)有沒有啟動(dòng)呢?
| 1 |
Get-Service spooler
|
[進(jìn)程] 當(dāng)前運(yùn)行了多少個(gè)IE進(jìn)程?
| 1 |
(Get-Process iexplore ).count
|
[報(bào)表] 將所有運(yùn)行的進(jìn)程信息導(dǎo)出為HTML報(bào)表?
| 1 |
Get-Process | ConvertTo-Html | Out-File a.html
|
現(xiàn)在知道了powershell的強(qiáng)大了吧,在windows平臺(tái)powershell還是比較好用的。
總結(jié)
以上是生活随笔為你收集整理的powershell和cmd区别是什么的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苏宁易购启动六一宝宝节,推出百大明星童心
- 下一篇: 贝索斯宣布7月5日卸任亚马逊CEO,他解