Windows 7 中開始有了一個(gè)PowerShell,實(shí)際是增強(qiáng)版的命令行工具。到了 Windows 10,它變成了默認(rèn)的命令行工具。
PowerShell比之前的命令行復(fù)雜得多,當(dāng)然也強(qiáng)悍得多,為了方便,后面我們簡(jiǎn)稱之前的命令行工具還是命令行。命令行使用上和Linux終端差別很多,體驗(yàn)也差很多。但是PowerShell就強(qiáng)多了,而且命令行的命令基本可以直接在PowerShell中使用。
PowerShell使用的命令叫小命令 - cmdlet。系統(tǒng)的很多管理任務(wù),小到注冊(cè)表操作,大到WMI (Windows Management Instrumentation) ,都可以通過PowerShell搞定,但是命令行搞不定!
cmdlet入門可以通過這一篇文章:https://www.howtogeek.com/114344/5-cmdlets-to-get-you-started-with-powershell/
PowerShell也是用了管道,這和Linux一樣,所以你可以把多個(gè)命令連接起來處理數(shù)據(jù)。但是PowerShell對(duì)管道也進(jìn)行了增強(qiáng):Unix系統(tǒng)中管道只能用于處理文本,而PowerShell可以處理“對(duì)象”:PowerShell是面向?qū)ο蟮?,里面幾乎任何東西都是對(duì)象,你執(zhí)行命令的返回都是對(duì)象。
PowerShell對(duì)象的入門可以看這一篇:https://www.howtogeek.com/138121/geek-school-learning-powershell-objects/
PowerShell不僅是一個(gè)命令行工具,更是一個(gè)腳本工具。你可以在里面編寫復(fù)雜的腳本來執(zhí)行系統(tǒng)管理任務(wù)。老命令行也不行!
命令行其實(shí)只是對(duì)DOS命令的改造,所以能力有限。雖然也能執(zhí)行腳本,但是腳本比較復(fù)雜。
那么我們要用PowerShell嗎?
It depends!
如果你就是用用ping或者ipconfig,那還是用命令行吧。雖然這些命令也能在PowerShell里用,不過有點(diǎn)大材小用!
但是如果想批量修改文件夾里的文件,就可以用PowerShell。否則可能需要其他軟件才行,因?yàn)槊钚惺歉悴欢ǖ摹?br> 至于怎么批量改名,請(qǐng)看https://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways-to-rename-multiple-files/
PowerShell支持強(qiáng)大的腳本編輯執(zhí)行能力,所以Windows系統(tǒng)管理員可能更青睞。
最后說一點(diǎn):為什么命令行的命令可以在PowerShell執(zhí)行呢?其實(shí)很多并不是PowerShell的內(nèi)置命令,是因?yàn)镻oweShell把他們作為小命令的“別名”了??梢酝ㄟ^get-alias查看
get-alias cd
CommandType Name Version Source
--
Alias cd -> Set-Location