2011/10/26

on

PowerShell Wiki :::
TechNet Windows PowerShell Script Center(下載安裝PowerShell2.0):
http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
MS Windows PowerShell 的實用秘訣 :  http://technet.microsoft.com/zh-tw/library/ff970270.aspx
MS Windows PowerShell 講座 ::: Richard Siddaway’s Blog(英文)
CMD 指令 : CMD指令大全
■■■ rmdir /s/q test 
其中: /s 是代表刪除所有子目錄跟其中的檔案。
/q 是不要它在刪除檔案或目錄時,不再問你 Yes or No 的動作。
------------------------------------------------------------------------------------------------------
■■■ 強而有力的 Windows PowerShell 系列文章列表如下:
http://ithelp.ithome.com.tw/event/ironmanarticle2/id/20005121

PowerShell與cmd.exe的對比點評
MS Windows PowerShell Cmdlet 實務指南(英文)

■■■ 免費的PowerShell GUI 開發工具有 PowerGUI,內建的 PowerGUI Script Editor 有整合開發環境、Intellisense ( 含指令說明 )、除錯工具、單步執行、變數視窗、…等等,算是非常方便的了。PowerGUI 包括兩套程式,分別是 PowerGUI 與 PowerGUI Script Editor。

■■■ powershell 腳本文件的文件擴展名為 .ps1

■■■ 啟動PowerShell後,輸入get-command回車會顯示PowerShell的所有命令,按照命令的類型、名稱和描述一行一個命令列出清單,有Alias、Cmdlet、Function三種命令類型,其中cmdlet命令有129條,這是用於操作對象的單功能命令,其書寫格式是由 - 分隔的動詞和名詞(前為動作、後為動作的標的),例Get-Process、Start-Service等,大多數 cmdlet都非常簡單,它們設計為與其他 cmdlet 組合使用,例如Get-Process僅顯示當前系統內的進程,輸入Get-Process|findstr 「svchost」,就會將Get-Process命令的結果傳遞到 Findstr 命令,用管道運算符 (|) 將其左側命令的結果發送到其右側的命令,這樣只會列出含有「svchost」的進程。如要查看某命令的詳細用法可使用get-help命令,例如輸入 get-help get-process回車即可顯示該命令的名稱、摘要、語法、詳細說明、相關鏈接及備註。

■■■ Powershell使用了 dir 和 ls,雖然這並不是 cmdlet,但的確可用於 Windows PowerShell。這類指令稱為 alias(化名),類似 cmdlet 的捷徑,例如 dir 和 ls 實際上都是 get-ChildItem 的 alias,get-ChildItem 才是 cmdlet;而 get-ChildItem 的功能,是列出磁碟機指定位置的子項目。

■■■ Windows PowerShell 的指令包含了許多內建的 alias,這些 alias 都是我們原本熟悉的 DOS 或 shell 指令,除了上述的 dir 和 ls,例如原本 DOS 指令的 rm、rmdir、rd、cls、copy 等,以及 BASH 的 cat、sleep、clear、cp 等,都是 Windows PowerShell 的 alias,也就是說,可以直接使用這些 alias;若要列出所有的 alias,可以用 get-alias 指令。除了使用內建的 alias,Windows PowerShell 也允許使用者以 set-alias 建立自己的 alias。

■■■ 除了 cmdlet 和 alias,Windows PowerShell 的指令還有 Application 和 Function 兩種類型,前者指的是獨立的程式檔(在 DOS 時代稱為外部指令),後者是有名稱的程式碼區塊,也就是函式:不論 Application 或 Function 都可以當作 Windows PowerShell 指令來用,也可以用在腳本程式裡。利用 get-command *,可以列出所有的指令。

■■■ PowerShell 「自動輸入完成」,跟 cmd.exe 裡一樣,可以輸入部分檔名或目錄名,按 Tab 鍵會自動列出第一個相符的檔案或目錄。 再按一次 Tab 鍵,會列出第 2 個相符的。以此類推。Shift + Tab 鍵 往前列出。在參數中也可用「自動輸入完成」。

■■■ 範例簡述:
將字串轉為英文大寫字母"HELLO" ::: PS C:\> "hello".ToUpper()
在字串的第1個字符後插入字串 ::: PS C:\> "hello".Insert(1, "my")
輸出結果存儲到臨時文件 lbb.txt 文件中 ::: PS C:\>(1-2)*3/4 > c:\lbb.txt
列出文件中的內容 ::: PS C:\>type c:\lbb.txt
運算結果存儲到變量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
get-help 是頗為重要的 cmdlet,可以線上查詢所有的 Windows PowerShell 指令和說明文件。例如:
·         get-help *:列出所有的主題,包括指令和概念。
·         get-help * | more:列出所有的主題,包括指令和概念,而且顯示滿整個視窗就暫停。
·         get-help about*:列出所有的概念主題,例如萬元字元、foreach 迴圈。
·         get-help get*:列出所有 get 開頭的主題。
·         get-help {<指令名稱或主題名稱>}:列出指定的指令或主題的說明,例如 get-help dir 可以查詢 dir 指令的用法,而 get-help about_wildcard 可以查詢「萬用字元」這項主題的用法。

■■■

0 意見: