當前位置:係統粉 >   IT資訊 >   微軟資訊 >  IT之家學院:強大到沒朋友,Win10 PowerShell簡介(3)

IT之家學院:強大到沒朋友,Win10 PowerShell簡介(3)

時間:2017-07-07 來源:互聯網 瀏覽量:

此前已經介紹了兩篇《強大到沒朋友,Win10 PowerShell簡介》係列(請看簡介1、簡介2)文章,今天網友帶來第三篇了解文章。

五、外部命令

Windows有著令人驚歎的兼容性,這是Unix係統和各種類Unix係統望塵莫及地方,PoweShell也幾乎兼容一切已經存在的命令,這也是PowerShell強大的地方之一。與CMD一樣,PowerShell可以很容易調用並執行外部命令,CMD自帶的命令也包括在內,而且可以Powershell提示符中啟動圖形界麵的Windows程序(比如如記事本),並且可以捕獲Windows程序生成的文本,並在PowerShell中使用該文本。

1、執行外部命令

在PowerShell誕生之前,Windows平台上就已經有許多程序員創建了數量巨大的實用命令,有些命令甚至在DOS操作係統時代就已經存在了,Windows很好的繼承了下來,這是一筆巨大的寶貴財富,拋棄這些命令是十分不明智的。由於PowerShell命令有“動詞-名詞”結構組成,雖然使命令變得簡單易懂,但也使命令變得很長,部分命令有別名也無濟於事,畢竟不是所有命令都有別名,更不可能為每一個命令創建一個別名。

有些PowerShell命令的功能和某些外部命令的功能是差不多,但通常外部命令比PowerShell自帶命令要短得多,所以在PowerShell命令窗口中輸入命令時,多使用與自帶命令功能相同的外部命令要大大的減少了輸入文字的數量,減輕手指負擔。

例如,使用頻率非常高的清屏命令,在CMD中是cls,在PowerShell中是Clear-Host,可以看到,Clear-Host明顯比cls長得多,好在微軟已經把cls作為Clear-Host的內置別名了,所以CMD和PowerShell都可以用cls來清屏。又比如,ping在CMD中也是使用頻率非常高的命令,在判斷網絡故障時非常有用,在PowerShell中沒有對應的命令,有一個功能差不多的Test-Connection命令,他們都是用來判斷網絡連通性的命令,ping卻比Test-Connection的長度短得多,可以為Test-Connection創建一個簡短的別名,也可以直接在PowerShell提示符窗口中直接使用ping命令,反正它們功能差不多。

下麵測試一下我和的網絡距離吧,大家順便看看Ping命令和Test-Connection命令的不同之處

IT之家學院:強大到沒朋友,Win10 PowerShell簡介(3)(1)

圖1:在PowerShell中執行ping命令測試網絡連通性

IT之家學院:強大到沒朋友,Win10 PowerShell簡介(3)(2)

圖2:用Test-Connection命令測試網絡連通性

2、執行外部命令要注意的地方

外部命令畢竟不是PowerShell親兒子,有時執行外部命令時會遇到一些問題,可是會使大家困惑,接下來我為大家說明一下執行外部命令要注意的地方,隻要看完,就知道那些問題都不是個事兒。

通常遇到的問題都是外部命令的名稱與內置別名相衝突,或者命令的語法與PowerShell語法不同造成的,解決方法也很簡單,名稱衝突就用完整的名稱,語法衝突就用PowerShell的語法,要不就幹脆使用具有相同功能的PowerShell命令。

例如,sc在CMD是常用的服務有關命令,sc在PowerShell是命令Set-Content的別名,在PowerShell中使用sc會被認為是Set-Content命令,這時隻要輸入完整的sc.exe命令,就能在PowerShell中正常運行了。如果想用sc命令查詢Spooler服務的狀態,Spooler是打印機服務,首先執行sc query Spooler,沒有任何輸出,這是因為PowerShell把sc當作Set-Content命令的別名了,之後我執行sc.exe query Spooler,就正常了。

IT之家學院:強大到沒朋友,Win10 PowerShell簡介(3)(3)

圖3:使用sc命令查詢Spooler服務

有時我們從網絡中下載一些命令行程序,比如著名的下載工具curl命令,可以通過PowerShell執行,明明是很簡單的事情,PowerShell偏偏就不把它做好,這裏我用軟媒魔方(廣告費,謝謝)做個演示。假設我的電腦之前藍屏了,我想用軟媒藍屏助手查看原因,於是在PowerShell命令窗口中輸入bsodhelper.exe,然後PowerShell就報個錯,好像是不想執行它,敢罷工,信不信我一口鹽汽水噴死你!

IT之家學院:強大到沒朋友,Win10 PowerShell簡介(3)(4)

圖4:打開bsodhelper.exe報錯

CMD就從來不會有這種破事,PowerShell為什麼這麼麻煩?之所以會報這個錯誤,絕對不是微軟吃飽了撐的,是為了用戶安全,想想看,為了破解某個軟件,從網上下載一個命令行破解工具,瀏覽器不讓下載,就先找教程關了SmartScreen,下完後被Windows Defender秒刪,一氣之下接著找教程把Windows Defender幹掉,費勁千辛萬苦終於把破解工具下載下來了,CMD立刻就能執行,PowerShell卻能讓你猶豫一下,盡管可能最後你成功執行了並破解了某軟件,但是電腦卻中毒了,於是去網上發帖“Windows垃圾,Windows太不安全了,下個軟件就能中毒,蘋果係統才是世上最好的係統”。相信我,這種人不但有,還絕非少數。

廢話了這麼多,說說怎麼才能執行這個bsodhelper.exe,很簡單在輸入bsodhelper.exe之前,先輸入一個半角的“.”,然後打個同樣是半角的“\”,“/”也行,反正PowerShell都認,正確輸入方式:

.\bsodhelper.exe

當然還有一種辦法,就是把這個文件的完整的絕對路徑輸進去,比如我把bsodhelper.exe放在c:\PCMaster下,就直接輸入:

c:\PCMaster\bsodhelper.exe

如果以後每次都想執行這個命令,那就請把命令所在的路徑添加到係統環境變量,就不細說了。

想看到更多這類內容?去APP商店搜,天天都有小歡喜。

我要分享:

最新熱門遊戲

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航