2012年3月10日 星期六

以前的 Windows PowerShell 筆記

Windows PowerShell 是方便的指令工具,Windows7有內建,較舊的版本也可安裝執行順利,我主要拿來整理照片以及其他檔案。
今天整理資料看到三年前的筆記,貼上來分享一下不專業心得,順便貼一些連結。

================================
下載並安裝PowerShell,PowerShell Help最好也一併下載參考。
在WinXP SP3環境下,安裝路徑在:「%SystemRoot%\system32\WindowsPowerShell\v1.0\」
使用時執行PowerShell「%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe」環境。

輸入「Set-ExecutionPolicy RemoteSigned」以解除近端執行限制,但同時限定遠端腳本須簽署過才能執行。
或者輸入「Set-ExecutionPolicy Unrestricted」以解除所有執行限制。

執行「.ps1」腳本文件時,需提供完整路徑。除非在腳本文件同路徑時,方可以執行「.\example.ps1」代替完整路徑。
若路徑中有空白,須前後加雙引號並以「呼叫運算式」→「&」引用。例如:「& "C:\My Scripts\example.ps1"」。

若在系統「PATH」設定過路徑,則不輸入檔案路徑時,腳本亦可被找到並執行。
若採行此法,為免混淆最好統一集中在同一個資料夾(路徑)中。
可輸入「$a = $env:path; $a.Split(";")」以查詢已設定過之路徑(通常為系統安裝時預設)。
更可輸入「$env:path = $env:path + ";d:\scripts"」,直接把「d:\scripts」這個路徑加進PATH設定最後一行。

"dot sourcing"可將選定腳本的變數及值,存在記憶中並對之後的腳本開放。
例如:假設「. c:\scripts\example.ps1」的內容為:
####[example.ps1] Begin####
$A = 5
$B = 10
$C = $A + $B
####[example.ps1] End####
執行後,再輸入「$C」,可得運算結果「15」。或再執行內容只有「$C」的腳本時,可得到相同結果。
若要清除記憶中的C變數值,可輸入「Remove-Variable C」即可。

不先開啟PowerShell環境,直接執行「powershell.exe –noexit 」後加腳本文件路徑、或腳本內容,可直接獲得運算結果視窗。
若想以此用於登錄腳本,可以以下VBScript呼叫:
####[VBScript that calls PowerShell script] Begin####
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe –noexit c:\scripts\test.ps1")
####[VBScript that calls PowerShell script] End####
================================

PowerShell 在網路上有許多教學資源,其實並不難,尤其是對視窗時代前就開始用電腦的朋友,有時候打指令甚至跑巨集可以解決的東西,比翻來移去,按許多滑鼠按鍵更加方便。
好人賴榮樞大師在微軟TechNet有一系列主筆的專欄,是使用PS必讀的文件:
  1. Windows PowerShell 講座 (1)—指令、重導、別名
  2. Windows PowerShell 講座 (2)—自訂工作環境
  3. Windows PowerShell 講座 (3)— PS 磁碟機
  4. Windows PowerShell 講座 (4)— 變數
  5. Windows PowerShell 講座 (5)—儲存資料的其他方式及編寫指令碼的前置準備
  6. Windows PowerShell 講座 (6)— 運算子(上)
  7. Windows PowerShell 講座 (7)— 運算子(下)
  8. Windows PowerShell 講座 (8)— 迴圈與流程控制
  9. Windows PowerShell 講座 (9)— 模組化
  10. 易學易用的 Windows PowerShell
  11. 賴大師擔任板主的微軟技術社群討論區Windows PowerShell板
賴大師的部落格裡也有許多相關文章,非常值得參考學習。

另外,微軟官方也有許多其他資源:
  1. 指令碼中心 / 學習園地 的 Windows PowerShell 專頁(中文)
  2. 線上使用手冊(英文版)
  3. 依照功能需求分類介紹的教學(簡單的英文):Windows PowerShell Cmdlet 實務指南
  4. 許多(六千多筆)高手寫好的指令等著你去找來用:Windows PowerShell 範例指令碼存放庫
記得之前參考過的其他資源:
  1. 網友TYPE提供的PowerShell 語法說明/範例教學
  2. 高手 James O'Neill 在MSDN提供的影像EXIF資料存取模組
  3. Jamesone部落格PS分類,以及關於上述模組的說明及運用:
  4. 其他一時手邊找沒有,還有很多熱心人士提供過實用教學及範例
這篇到此結束。

2 則留言: