powershell幹嘛用的

2023-02-24 22:01:04

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:

1.png

2、彈出執行視窗如下:

2.png

3、在輸入框輸入PowerShell回車或點選確定:

3.png

4、輸入後會彈出PowerShell命令視窗,恭喜你搞定啦,可以直接在裡面輸入命令列使用了,參考如下:

4.png

更多相關知識,請存取欄目!

以上就是powershell幹嘛用的的詳細內容,更多請關注TW511.COM其它相關文章!