導語:對於電腦高手來說,華麗的圖形界面往往並不實用,快捷的鍵盤命令才是王道。Win7集成的PowerShell2.0,更是其中的王中王,讓你直接掌控你的電腦命脈。
Win7中集成了PowerShell2.0,如今任何GUI執行的管理任務(例如控制系統,訪問注冊表、系統日志和數字簽名證書等數據)都能通過PowerShell腳本來完成了,如果你的系統是WinXP/Vista/2003/2008,只需到http: //support.microsoft.com/kb/968929下載安裝PowerShell2.0,即可使用這個新一代的命令行工具!
一、PowerShell是何方神聖?
PowerShell是CMD的升級版,類似C++語言,提供了200多條命令、還有循環、條件、流控制和變量賦值等語言結構,可以讓你創建各種復雜的腳本去完成任務。它支持完全交互式環境,可在提示符下逐條鍵入命令執行,例如輸入命令get-process回車,系統返回該命令結果,也可以將多條命令寫在同一個腳本文件中連續執行,腳本文件的文件擴展名為 .ps1,在命令提示符下鍵入該腳本名稱(文件擴展名可選)即可自動連續執行腳本中的所有命令;命令執行的結果能輸出到外殼程序窗口、文件或打印機中,還能使用管道運算符 (|) 輸出到其他命令中。
二、啟動PowerShell
在Win7中點擊“開始→所有程序”,在“附件”中有個Windows PowerShell,點擊展開Windows PowerShell,裡面有Windows PowerShell ISE和Windows PowerShell這兩個選項(圖1),後者是CMD那樣的命令行模式界面,前者是圖形化的PowerShell開發環境、包含了調試功能和交互式控制台,適合PowerShell編程的用戶使用。
除了以上方法能啟動PowerShell,在傳統的CMD窗口中輸入PowerShell回車也能啟動PowerShell,與CMD不同,PowerShell的提示符是PS開頭的(圖2);
如要啟動PowerShell ISE,可以點擊“開始→所有程序→附件→Windows PowerShell→Windows PowerShell ISE”,這是一個集成的腳本環境(圖3),裡面有3個窗格,在頂部窗格中你可以練習編程創建或編輯腳本,中間是運行結果,最下方窗格中能輸入運行 PowerShell命令。
三、PowerShell支持哪些命令?
啟動PowerShell後,在窗口中輸入get-command回車會顯示PowerShell的所有命令,按照命令的類型、名稱和描述一行一個命令列出清單(圖4),有Alias、Cmdlet、Function三種命令類型,其中cmdlet命令有129條,這是用於操作對象的單功能命令,其書寫格式是由-分隔的動詞和名詞,例如Get-Process、Start-Service等,大多數 cmdlet都非常簡單,它們設計為與其他 cmdlet 組合使用,例如Get-Process僅顯示當前系統內的進程,輸入Get-Process|findstr “svchost”(圖5),就會將Get-Process命令的結果傳遞到 Findstr 命令,用管道運算符 (|) 將其左側命令的結果發送到其右側的命令,這樣只會列出含有“svchost”的進程。如要查看某命令的詳細用法可使用get-help命令,例如輸入 get-help get-process回車即可顯示該命令的名稱、摘要、語法、詳細說明、相關鏈接及備注。
PowerShell能管理系統服務、操作注冊表、進行眾多的網絡相關操作,可以方便地查看和結束系統內的進程,例如輸入get- process就會列出系統中進程的句柄、進程名、進程占用處器時間和進程ID,如要結束某個或多個進程,只需先用get-process查看該進程的 ID,然後輸入Stop-process,再根據提示輸入一個或多個進程的ID,按下回車後這些進程即可被結束。
PowerShell還允許用別名來啟動某命令和系統內建的工具,例如你輸入命令set-alias gp get-process,可將gp設置為get-process的別名,以後輸入gp即可啟動get-process了,再如你輸入命令set- alias ca calc將ca設置為計算器calc的別名,以後輸入ca即可啟動計算器。
四、語法與范例
下面給出一些PowerShell命令范例:
功能
格式和備注
范例
數學運算
輸入要計算的表達式,結果就會出來的
PS C:\> 105+20
PS C:\> (2+3*4)/512
輸出文本
PowerShell不需要打印語句,在要輸出的文本前後加上引號即可
PS C:\> "hello"
大小寫轉換
將字串轉為英文大寫字母"HELLO"
PS C:\> "hello".ToUpper()
插入字串
在字串的第1個字符後插入字串
PS C:\> "hello".Insert(1, "my")
輸出結果存儲到臨時文件
計算結果保存到lbb.txt文件中
PS C:\>(1-2)*3/4 > c:\lbb.txt
列出文件中的內容
用type命令將文件的結果取回
PS C:\>type c:\lbb.txt
運算結果存儲到變量中
運算結果存儲到變量x中,以後可調用這個變量x
PS C:\> $x=(3-1)*2
變量運算
變量x中數據與3進行運算
PS C:\> $x/3
數組
將當前目錄下的目錄項對象集合保存到dirs數組中
PS C:\> $dirs=dir
數組訪問
PowerShell數組下標是從0開始的,這是返回dirs中保存的第一個目錄項對象
PS C:\> $dirs[0]
訪問注冊表
PowerShell中,HKEY_LOCAL_MACHINE 配置單元映射到 HKLM: 驅動器,而 HKEY_CURRENT_USER 配置單元映射到 HKCU: 驅動器
PS C:\> cd hklm:
PS HKLM:\> dir
訪問證書存儲區
證書存儲區映射到 Cert: 驅動器
PS C:\> cd cert:
PS cert:\> dir
等待calc程序執行結束
PS C:\> $processToWatch = get-process calc
PS C:\> $processToWatch.WaitForExit()
管道運算符 (|)應用
停止運行所有以"i"字符開頭的程序
PS C:\> get-process i* | stop-process
計算當前目錄下所有文件的長度總和
PS C:\>get-childitem | measure-object -property length -sum