win7系統(tǒng)下載
當(dāng)前位置: 首頁 > win10系統(tǒng)教程 > 詳細(xì)頁面

Win10創(chuàng)意者更新 PowerShell正式替換CMD

發(fā)布時間:2023-01-14 文章來源:深度系統(tǒng)下載 瀏覽:

Windows 10是美國微軟公司研發(fā)的跨平臺及設(shè)備應(yīng)用的操作系統(tǒng)。是微軟發(fā)布的最后一個獨立Windows版本。Windows 10共有7個發(fā)行版本,分別面向不同用戶和設(shè)備。截止至2018年3月7日,Windows 10正式版已更新至秋季創(chuàng)意者10.0.16299.309版本,預(yù)覽版已更新至春季創(chuàng)意者10.0.17120版本

  

 

Windows10創(chuàng)意者更新開始,PowerShell正式上位替換了命令提示符CMD。不論是Windows+X右鍵超級菜單,還是Shift+文件夾空白處右鍵,又或在文件資源管理器文件菜單中,都沒有命令提示符CMD的身影了,全部都由PowerShell取而代之了。長期使用CMD的Windows系統(tǒng)管理員或Windows命令行極客恐怕一時不能適應(yīng),使用CMD都只能去開始菜單-所有應(yīng)用-Windows系統(tǒng)-命令提示符打開使用,藏得這么深,顯然是不想讓人用了啊。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(1)

圖1:PowerShell打開方式

 

問題來了,PowerShell這貨憑什么力壓CMD,強行上位?如果你之前試用過PowerShell,相信它一定沒有給你什么好印象。打開慢!反應(yīng)慢!命令還陌生!還動不動就彈一大堆誰都看不懂錯誤,PowerShell究竟憑什么在Windows10創(chuàng)意者更新中替代命令提示符CMD呢?微軟腦抽了?

微軟沒有腦抽,PowerShell是憑借其強大的功能替換CMD的。這里要先說明以下PowerShell究竟是什么東西,或者它究竟是不是東西?

Windows PowerShell不是東西,它是專為系統(tǒng)管理員設(shè)計的新Windows命令行shell,它包括交互式提示和腳本環(huán)境。PowerShell定義很多命令與操作系統(tǒng),特別是與文件系統(tǒng)交互,能夠啟動應(yīng)用程序,甚至操縱應(yīng)用程序;PowerShell允許將幾個命令組合起來放到文件里執(zhí)行,實現(xiàn)文件級的重用,也就是說有腳本的性質(zhì);PowerShell能夠充分利用.Net類型和COM對象,來簡單地與各種系統(tǒng)交互,完成各種復(fù)雜的、自動化的操作。

用人話說就是CMD能做的PowerShell都能做,CMD不能做的Powershell也能做。就是這么自信!不信?趕緊打開PowerShell把下面的命令復(fù)制進(jìn)去,看看它干了什么事,然后你用CMD做出來吧!

# create new excel instance

$objExcel = New-Object -comobject Excel.Application

$objExcel.Visible = $True

$objWorkbook = $objExcel.Workbooks.Add()

$objWorksheet = $objWorkbook.Worksheets.Item(1)

# write information to the excel file

$i = 0

$first10 = (ps | sort ws -Descending | select -first 10)

$first10 | foreach -Process {$i++; $objWorksheet.Cells.Item($i,1) = $_.name; $objWorksheet.Cells.Item($i,2) = $_.ws}

$otherMem = (ps | measure ws -s).Sum - ($first10 | measure ws -s).Sum

$objWorksheet.Cells.Item(11,1) = "Others"; $objWorksheet.Cells.Item(11,2) = $otherMem

# draw the pie chart

$objCharts = $objWorksheet.ChartObjects()

$objChart = $objCharts.Add(0, 0, 500, 300)

$objChart.Chart.SetSourceData($objWorksheet.range("A1:B11"), 2)

$objChart.Chart.ChartType = 70

$objChart.Chart.ApplyDataLabels(5)

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(2)

圖2:使用PowerShell生成Excel圖表

 

上面一段代碼是PowerShell界常見的一段神代碼,很多初學(xué)者被其帶入了PowerShell的大門。有效代碼不過20來行,作用是把當(dāng)前系統(tǒng)中最占內(nèi)存的10個進(jìn)程的數(shù)據(jù)發(fā)送到Excel中,并繪制成三維餅圖。CMD是很難做到了,被替代也理所應(yīng)當(dāng)了。

PowerShell的定位是操作系統(tǒng)和應(yīng)用程序的管理工具,從這個角度看,它是CMD的升級版,并非簡單的對CMD進(jìn)行擴(kuò)展,事實上微軟也不打算擴(kuò)展和升級CMD了,以后PowerShell將全方位的替代CMD,目前CMD和PowerShell還是并存狀態(tài)。

下面正式介紹PowerShell。

一、簡單的命令

在CMD中,命令是從非常簡單(如attrib.exe)到非常復(fù)雜(如netsh.exe)的可執(zhí)行程序,新入門用戶一旦遇到復(fù)雜命令,只能束手無策,只能求助搜索引擎,解決當(dāng)前需求之后,就把命令的用法拋諸腦后,下次使用又要重新學(xué)習(xí),極其不便。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(3)

圖3:復(fù)雜的netsh命令

 

PowerShell命令設(shè)計非常規(guī)范,它的命令由“動詞”和“名詞”兩部分組成,比如“get”表示檢索數(shù)據(jù),“process”表示系統(tǒng)進(jìn)程,把“get”和“process”組合起來的PowerShell命令就是“get-process”,意思是獲取系統(tǒng)進(jìn)程列表,這種命令在PowerShell中稱為“cmdlet(讀作“command-let”)”。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(4)

圖4:使用get-process命令獲取系統(tǒng)進(jìn)程

 

像“get-process”這樣“動詞-名詞”結(jié)構(gòu)有個好處,具有相同“名詞”的命令通常是一類命令,比如都擁有“process”的命令有:

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(5)

圖5:擁有“process”的命令

 

使用“動詞-名詞”結(jié)構(gòu)還有一個好處,就是不同的“動詞”和“名詞”可以自由組合,很少的幾個“動詞”和“名詞”就可以組合出大量的可用命令,使命令記憶量大為降低,只需記住簡單的幾個詞語,就可以使用大量的命令,這是包括命令提示符CMD在內(nèi)的Shell不具備的,并且不會產(chǎn)生歧義,對新用戶非常友好。

二、別名系統(tǒng)

“動詞-名詞”結(jié)構(gòu)的cmdlet固然對新手友好,但也帶來了另一個問題,命令名稱過長,在命令行交互使用時不方便,在命令行窗口輸入命令可以使用Tab鍵進(jìn)行補全,可是經(jīng)常使用還是需要鍵入大量的內(nèi)容,要是能夠把命令縮短一些就好了。PowerShell在設(shè)計時已經(jīng)考慮到了,為此創(chuàng)建了別名系統(tǒng),之所以叫名別系統(tǒng),是因為PowerShell中的別名非常強大,能夠非常方便的對別名進(jìn)行增加、刪除、修改,還為之創(chuàng)建了別名驅(qū)動器,可以像訪問文件系統(tǒng)驅(qū)動器一樣方便的訪問別名驅(qū)動器。

PowerShell非常貼心的為用戶創(chuàng)建了大量內(nèi)置別名,一方面減少了常用命令的輸入長度,另一方面也為熟悉其它Shell而不熟悉PowerShell的用戶提供了方便,常見Shell如bash、cmd,PowerShell都為用戶提供了他們熟悉的別名。下面是可以在Powershell中使用的通用的Cmd.exe和UNIX命令的簡短列表。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(6)

圖6:PowerShell兼容性別名列表

 

PowerShell除了自帶別名外,用戶自己也可以創(chuàng)建別名,不僅僅可以為cmdlet創(chuàng)建別名,也可以為PowerShell函數(shù)、帶參數(shù)的命令和包含完整路徑的命令行程序創(chuàng)建別名。

比如為記事本創(chuàng)建別名,可以使用如下命令:

New-Alias np c:\windows\notepad.exe

創(chuàng)建別名完成后,在命令行中輸入np就能直接打開記事本。在命令行中創(chuàng)建的別名只能在當(dāng)前命令行窗口中使用,如果想以后也能使用此別名,可以把以上命令保存在PowerShell配置文件中,以后無論是在命令行中,還是使用腳本,都可以在本機(jī)使用np別名了。PowrShell配置文件位置可以使用$profile命令查詢。

想查看當(dāng)前命令行窗口可以使用的別名,可以進(jìn)入別名驅(qū)動器查看,使用dir alias:就能查看所有能用的別名,也可以使用get-alias命令查看別名。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(7)

圖7:查看PowerShell別名驅(qū)動器

 

三、管理任務(wù)

Windows PowerShell的基本目標(biāo)是使用戶能夠以交互方式或通過腳本更好、更容易地對系統(tǒng)進(jìn)行管理控制,為了達(dá)成這個目標(biāo),PowerShell提供了大量命令來執(zhí)行各種管理任務(wù),讓用戶輕松完成管理系統(tǒng)任務(wù)。

1、管理進(jìn)程

前面已經(jīng)提過管理系統(tǒng)進(jìn)程的命令,管理進(jìn)程常用命令就是get-process命令和stop-process命令,get-process命令獲取進(jìn)程之后可以直接用管道發(fā)送給stop-process命令結(jié)束進(jìn)程。比如,關(guān)閉之前打開的記事本,可以使用下面的命令很方便的關(guān)閉記事本。

get-process -Name notepad | stop-process

2、處理文件和文件夾

PowerShell使用Get-ChildItem獲取文件夾中直接包含的所有項,它有系統(tǒng)內(nèi)置別名dir和ls,使用CMD和BASH的用戶均可以輕松上手。如果想查看C:中的文件夾和文件,直接使用dir c:,PowerShell立刻就會列出C:中的文件和文件夾。其它處理文件和文件夾的命令有Copy-Item、New-Item、Remove-Item等,具體用法可以使用get-help然后跟命令名稱即可查詢。

3、處理系統(tǒng)服務(wù)

可以像管理進(jìn)程一樣管理系統(tǒng)服務(wù),Get-Service命令獲取服務(wù)列表,Stop-Service命令停止服務(wù),Start-Service命令啟動服務(wù),Suspend-Service命令掛起服務(wù),Restart-Service命令重啟服務(wù),Set-Service服務(wù)設(shè)置服務(wù)屬性。如果想一次性啟動已經(jīng)停止的服務(wù),可以使用以下命令:

get-service | where-object {$_.Status -eq "Stopped"} -exclude

wisvc | start-service

這行命名會把除wisvc之外的命令都啟動,這只是一個示例,不要在自己電腦使用,啟動所有服務(wù)會消耗大量系統(tǒng)資源。

4、處理注冊表

PowerShell可以非常方便的處理注冊表項目,與進(jìn)程和服務(wù)不同的是,PowerShell并未提供專用的注冊表命令,而是使用處理文件和文件夾的命令,這并不奇怪,PowerShell為用戶提供了注冊表驅(qū)動器,可以很好的處理注冊表項目。由于注冊表對系統(tǒng)非常重要,錯誤處理注冊表也許會導(dǎo)致系統(tǒng)出問題,處理注冊表,特別是刪除注冊表項目要非常小心,最好能在處理注冊表項目之前先備份要處理的項目。沒有管理員權(quán)限也能處理部分注冊表項目,這與regedit注冊表編輯器不同,注冊表編輯器必須使用管理員權(quán)限打開,然后才能操作項目。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(8)

圖8:無管理員權(quán)限訪問HKLM:驅(qū)動器

 

下面的表格列出了訪問注冊表所需的所有命令。

 

Win10創(chuàng)意者更新 PowerShell正式替換CMD(9)

圖9:處理注冊表的命令與預(yù)定義的注冊表驅(qū)動器

 

PowerShell只提供了兩個注冊表驅(qū)動器HKCU:和HKLM:,其中HKLM:是HKEY_LOCAL_MACHINE的縮寫,HKCU:是HKEY_CURRENT_USER的縮寫,如果想要訪問所有注冊表驅(qū)動器,可以進(jìn)入Microsoft.PowerShell.Core\Registry::。

5、處理其它任務(wù)

PowerShell還可以處理證書、防火墻、appx應(yīng)用、打印機(jī)等任務(wù),篇幅所限,不具體舉例。大家可以使用get-command命令查找相關(guān)命令。

Win10系統(tǒng)之家

 


新技術(shù)融合:在易用性、安全性等方面進(jìn)行了深入的改進(jìn)與優(yōu)化。針對云服務(wù)、智能移動設(shè)備、自然人機(jī)交互等新技術(shù)進(jìn)行融合。Windows 10所新增的Windows Hello功能將帶來一系列對于生物識別技術(shù)的支持。除了常見的指紋掃描之外,系統(tǒng)還能通過面部或虹膜掃描來讓你進(jìn)行登入。當(dāng)然,你需要使用新的3D紅外攝像頭來獲取到這些新功能。