powershell能幹:1、可以與檔案系統互動,能夠啟動應用程式,甚至操縱應用程式;2、允許將幾個命令組合起來放到檔案裡執行,實現檔案級的重用,也就是說可以建立指令碼;3、能夠充分利用.Net型別和COM物件,來簡單地與各種系統互動,完成各種複雜的、自動化的操作。
本教學操作環境:windows10系統、Dell G3電腦。
什麼是 PowerShell?
PowerShell 是一種跨平臺的任務自動化解決方案,由命令列 shell、指令碼語言和設定管理框架組成。 PowerShell 在 Windows、Linux 和 macOS 上執行。
命令列 Shell
PowerShell 是新式命令 shell,其中包括其他常用 shell 的最佳功能。 與大多數僅接受並返回文字的 shell 不同,PowerShell 接受並返回 .NET 物件。 shell 包括以下功能:
可靠的命令列歷史記錄
Tab 自動補全和命令預測(請參閱 about_PSReadLine)
支援命令和引數別名
用於連結命令的管道
控制檯內幫助系統,類似於 Unix man 頁面
PowerShell能幹什麼呢?
PowerShell首先是個Shell,定義好了一堆命令與作業系統,特別是與檔案系統互動,能夠啟動應用程式,甚至操縱應用程式;第二,PowerShell允許將幾個命令組合起來放到檔案裡執行,實現檔案級的重用,也就是說有指令碼的性質;第三,PowerShell能夠充分利用.Net型別和COM物件,來簡單地與各種系統互動,完成各種複雜的、自動化的操作。
一、與檔案系統互動、執行應用程式
就像在Dos中一樣,在PowerShell的互動介面上鍵入"dir"並回車,會顯示當前資料夾下的子資料夾和檔案資訊。
PS D:\Projects\Practise\PowerShell> dir
Directory: D:\Projects\Practise\PowerShell
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 1/23/2013 12:35 PM d1
d---- 1/23/2013 12:35 PM d2
-a--- 1/21/2013 8:38 PM 36314 alias.tx
-a--- 1/21/2013 8:32 PM 241530 cmdlets.
-a--- 1/18/2013 10:18 AM 888 errors.t
登入後複製
像這樣的命令很多,比如echo "Hello", cd ..等等。從這裡看來它就是一個命令列,實現了原來命令列的功能。但PowerShell是命令列的加強版嗎,是命令列的超集嗎?這個真不是,以後會專門說這個問題。
就像在命令列裡執行應用程式一樣,可以在PowerShell的互動視窗中執行應用程式,如下:
PS C:\Users\v-lukez> notepad
PS C:\Users\v-lukez>
登入後複製
如果想更好地控制應用程式,可以使用start命令,如下:
PS C:\Users\v-lukez> start notepad -WindowStyle Maximized
PS C:\Users\v-lukez>
登入後複製
以上結果可以實現Notepad視窗的最大化。其實類似的命令還有很多,而且更多的引數意味著更精細地控制。
二、建立指令碼
任務的自動化是以程式檔案或者可執行指令碼檔案為基礎的,PowerShell也支援將命令列表做成指令碼檔案來執行。以下是Hello.ps1指令碼檔案的內容:
$a = "Hello"
$a
echo $a > a.txt
dir a.txt
登入後複製
Hello.ps1指令碼檔案的執行情況結果如下:
PS E:\> D:\Projects\Practise\PowerShell\Hello.ps1
Hello
Directory: E:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 1/30/2013 4:56 PM 16 a.txt
登入後複製
你可能發現了,PowerShell指令碼檔案是以.PS1為擴充套件名的。以上這個指令碼非常簡單:先定義了一個變數,然後輸出這個變數的結果,再將這個變數的值寫入檔案a.txt,最後輸出這個檔案的屬性資訊。僅從這一點看,PowerShell指令碼很像Batch檔案。但是實際上,PowerShell可以做得更多。
PowerShell指令碼支援自定義函數,就像我們在程式語言中做得那樣。funcDemo.ps1給出了一個在PowerShell指令碼中編寫函數的範例:
#funcDemo.ps1
function SayHello ($name)
{
echo "hello $name"
}
SayHello "Luke"
登入後複製
指令碼的執行結果是「Hello Luke」。
此外,關於PowerShell指令碼內部語句的執行順序,這裡要做個簡單說明:除了函數定義,指令碼中的命令或者函數呼叫(其實也相當於執行命令)會順序執行;函數中的語句只有在函數被呼叫的時候才會被執行。
三、利用.Net型別和COM物件
能夠利用.Net型別和COM物件是PowerShell的最大特點,這讓PowerShell能夠最大限度的利用現有資源,並且很容易把.Net和COM程式設計師招徠到自己麾下。
簡單型別:
[int]$a = 10
[String]$b = 10
登入後複製
.Net型別
$Message = new-object Net.Mail.MailMessage("[email protected]","[email protected]", "Subject",
"Here is some email")
登入後複製
COM物件
$myWord = new-object -comobject Word.Application
登入後複製
建立了.Net或者COM的物件以後,就可以利用這些物件的屬性和方法,來完成更加複雜的操作。
作為本篇結束,用一句話總結,PowerShell吃得很少,幹活很多,是Windows管理員日常必備的工具之一。走過路過,千萬不要錯過啊。。。
怎麼開啟執行PowerShell
1、win選單鍵+R:
2、彈出執行視窗如下:
3、在輸入框輸入PowerShell回車或點選確定:
4、輸入後會彈出PowerShell命令視窗,恭喜你搞定啦,可以直接在裡面輸入命令列使用了,參考如下:
更多相關知識,請存取欄目!
以上就是powershell幹嘛用的的詳細內容,更多請關注TW511.COM其它相關文章!