青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 505  文章 - 1034  trackbacks - 0
<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456


子曾經曰過:編程無他,唯手熟爾!

常用鏈接

留言簿(94)

隨筆分類(649)

隨筆檔案(505)

相冊

BCB

Crytek

  • crymod
  • Crytek's Offical Modding Portal

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

積分與排名

  • 積分 - 918549
  • 排名 - 14

最新隨筆

最新評論

閱讀排行榜

評論排行榜

重劍點評:這玩意兒有啥用呢?
        遠期目標:給版本制作組提供更方便更強大更自動化的腳本;
        近期目標:耍酷!嘿嘿,用下這個: ipconfig | findstr "Address"

Scripting with Windows PowerShell


下面是例子的鏈接:

Windows PowerShell Scripts

Windows powershell script repository Windows PowerShell Script Repository

Browse a repository of sample Windows PowerShell scripts.





易學易用的Windows PowerShell

Windows PowerShell 是微軟為 Windows 環境所開發的 shell 及腳本語言技術,這項全新的技術提供了豐富的控制與自動化的系統管理能力;而“腳本語言”(scripting languages)則是用來編寫程序的計算機語言。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓寫程序的人(開發者)快速完成程序的編寫 工作。本文將簡述腳本語言的起源與目的,并且介紹 Windows PowerShell。
腳本語言的源起與目的

腳本語言是計算機程序語言(programming languages)的一種,因此也能讓開發者藉以編寫出讓計算機聽命行事的程序。但是「以簡單的方式快速完成某些復雜的事情」通常是創造腳本語言的重要 原則,基于這項原則,使得腳本語言通常比 C、C++ 或 Java 之類的「系統程序語言」(system programming languages)「簡單」、「容易」,也讓腳本語言另有一些所謂「腳本語言的特性」: •

語法和結構通常比較簡單 •

學習和使用通常比較簡單 •

通常以容易修改程序的「直譯」作為執行方式,而不需要編譯 •

程序的開發產能優于執行效能

腳本語言源自早期文字模式的命令列計算機系統,在當時只能以鍵盤敲入命令才能操作計算機的情況下,為了減少某些需要不斷重復敲入命令的情 況,計算機操作系統的命令處理器(在 UNIX 的世界這通常稱為 command shell)提供了「批次操作」(batch operation)的方式,讓計算機操作者可以將一整個流程的命令,循序、逐行的編排在稱為「批處理」(batch file,也稱為 batch jobs 或 shell scripts)的文字文件,若有相同的操作需要處理,即可加載批次檔而不需再次重復敲入指令。

Shell Script

由于批處理對命令列的計算機系統操作者幫助甚大,因此操作系統的命令處理器也不斷加強功能,尤其加入了許多程序語言的重要元素,包括變量、 循環、條件判斷等等,讓計算機操作不只是循序的執行命令,而能更精確的操控計算機系統的運作;這種程序設計通常稱為 shell programming。因此,不論是大型主機的系統操作員,或者是整個計算機環境的系統管理員、網絡管理員,shell programming 都是相當重要的技能,這項技能可以有效且快速的管理轄下的計算機。

UNIX 系統的 shell 相當多樣,例如 Bourne Shell(sh)、Bourne-Again Shell(bash)、Korn Shell(ksh)、C Shell(csh)等等;以下簡述常見的 UNIXshell。 •

Bourne Shell(sh):這是歷史悠久且重要的 UNIX shell,是由貝爾實驗室的研究員 Stephen Bourne 為第七版的 UNIX 所創造,這種 shell 的執行檔擴展名就是 .sh。 •

Bourne-Again Shell(bash):光從名稱就能猜出 bash 與 sh 是有淵源(甚至說「血緣」)。bash 是由 Brian Fox 于 1987 年為 GNU 所創造,1990 年起,Chet Ramey 成為主要的維護者。bash 是相當流行的 shell,除了是大多數 Linux 預設的 shell,在許多 UNIX-like 系統也有其蹤跡(例如 Mac OS X Tiger),甚至也能通過 Cygwin 在 Windows 系統執行。

Korn Shell(ksh):是由貝爾實驗室的研究員 David Korn 在 80 年代初期所創造,ksh 除了與 sh 完全兼容,也包含了若干 C Shell 的功能。

C Shell(csh):是由 Bill Joy(后來創辦了Sun公司)為 BSD UNIX 系統所創造。csh 源自于第六版 UNIX 的 Thompson shell(是 Bourne Shell 的前身),因為語法類似 C 語言而得名。

除了上述盛行于 UNIX 環境的 shell,其它操作系統也有專屬的 shell 或 shell 腳本語言,例如蘋果Mac系統的 AppleScript、IBM OS/2 的 REXX(REstructured eXtended eXecutor)。而 DOS 以及早期 Windows 的 shell 則是 Command.com,但也因功能較弱,因此有 4DOS、4NT 等軟件可增強功能,Windows 2000 以及之后的 Windows 則改以功能較強 cmd.exe 作為 Windows shell,并且以 Windows Script Host 作為腳本語言執行環境,大幅提高了 Windows shell 的可用性。而微軟也將會推出功能更強的 Windows shell,稱為 Windows PowerShell。

雖然現在許多計算機系統都提供了圖形化的操作方式,但是卻都沒有因而停止提供文字模式的命令列操作方式,相反的,許多系統反而更加強這 部份的功能,例如 Windows 就不只加強了操作命令的功能和數量,也一直在改善 shell programming 的方式。而之所以要加強、改善,當然是因為不夠好;Windows 的圖形化操作方式對單一客戶端計算機的操作,已經相當方便,但如果是一群客戶端計算機,或者是 24 小時運作的服務器計算機,圖形化操作方式有時會很不方便。

宏語言

宏語言也可視為腳本語言的分支,兩者也實質上的相同之處。宏語言通常附屬于某一種軟件,例如微軟 Office、Visual Studio、Adobe Photoshop 都內建了宏語言的功能,使用者可利用軟件所附的宏語言,達到自動化的結果(例如調整某個數據夾所有 PSD 圖文件的分辨率)。而這類宏語言也大多提供錄制宏的功能,自動記錄使用者的鍵盤按鍵,讓使用者不必寫程序,就能產生宏程序。此外,C 語言和匯編語言也有宏功能,是以搜尋及取代進行編譯或組譯之前的前置處理。

Windows PowerShell 誕生

UNIX 的世界有功能強大的 shell,現在 Windows 環境也有了;Windows PowerShell 不僅提供功能相當于BASH的命令列 shell,同時也內建腳本語言以及輔助腳本程序的工具。Windows PowerShell 是以 .NET 技術為基礎,并且與現有的 WSH 保持回溯兼容,因此 Windows PowerShell 的腳本程序不僅能存取 .NET CLR,也能使用現有的 COM 技術。

Windows PowerShell 包含了數種系統管理工具、簡易且一致的語法,提升管理者處理常見如登錄數據庫、WMI。Exchange Server 2007 以及 System Center Operations Manager 2007 等服務器軟件都將內建 Windows PowerShell。

Monad 是 Windows PowerShell 之前的項目代號,Microsoft Shell(MSH)則是另一個別名;簡而言之,Windows PowerShell 具有以下特點:

一致性的設計讓所有工具和系統數據的使用語法、命名原則都相同。

Windows PowerShell 的腳本語言不僅簡單易學,而且能支持現有的腳本程序和命令列工具。 •

內含 129 種稱為 cmdlet 的標準工具,可用來處理常見的系統管理工作,例如登錄數據庫、系統服務、形成、WMI、事件日志等等。 •

具備完整的擴充功能,獨立軟件商或開發者都能很容易的自行擴充。

下載、安裝、執行 Windows PowerShell

Windows PowerShell 可安裝于 Windows XP 以及之后的客戶端或服務器端 Windows 操作系統,包括: •

客戶端:Windows XP、Windows XP Service Pack 1、Windows XP Service Pack 2、Windows Vista •

服務端:Windows Server 2003、Windows Server 2003 R2、Windows Server 2003 Service Pack 1

而 Windows PowerShell 除了有 32 位版本,也還有 x64 和 ia64 等兩個 64 位版本,可以安裝在這兩種 64 位 Windows 平臺。此外,由于執行 Windows PowerShell 需要 .NET Framework 2.0,因此請先替計算機安裝 .NET Framework 2.0。

安裝之后,可以利用以下三種方式執行 Windows PowerShell:

位于『開始 / 所有程序』的『Windows PowerShell』快捷方式。

在『開始 / 運行』的『運行』命令窗輸入 powershell。

在任何『命令提示字符』窗口的命令提示符號輸入 powershell。

Windows PowerShell 窗口看起來類似原本的『命令提示字符』窗口,而我通常也都會調整窗口和字型的大小,以方便作業。

初探 Windows PowerShell

任何 shell 都有列出目錄、文件的命令,Windows PowerShell 呢?先輸入 DOS 的 dir 試試吧!

圖 1 dir 指令執行結果
圖 1 dir 指令執行結果

嗯!dir 果然也通,但是列示的方式不同于以往的 dir 指令。一時興起,我輸入了 UNIX 的 ls 指令,窗口顯示了與 dir 指令相同的結果;真有趣(這時候我尚未閱讀任何 Windows PowerShell 文件,只是很直覺輸入指令)。

Windows PowerShell 指令

cmdlet 是 Windows PowerShell 的指令,這相當于 DOS 或其它 shell 的內建指令(但是剛剛輸入的 dir 或 ls 并不是 cmdlet,這稍后將會說明),cmdlet 的發音方式是 command-let。cmdlet 名稱的格式都是以連字符號隔開的一對動詞和名詞,并且通常都是單數名詞。例如可以在線查詢 cmdlet 用法的 cmdlet 即為 get-help。cmdlet 名稱的動詞部分大致有 get、set、add、remove 等等(Windows PowerShell 的操作與 DOS 相同,輸入的字母都不分大小寫)。

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 可以查詢「萬用字符」這項主題的用法。

此外,也可以用 help 取代 get-help,最大的好處是 help 顯示滿整個窗口,預設就會自動暫停。

一開始曾經使用了 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 *,可以列出所有的指令。

Windows PowerShell 的管線功能

DOS 或 UNIX shell 都能利用「管線符號」(pipeline symbol),將指令的執行結果移轉到另一個指令,讓另一個指令處理前一個指令轉來的數據。Windows PowerShell 的管線符號也是 |,例如之前用過的 get-help * | more,就是將 get-help * 的結果轉給 more,而 more 會讓結果顯示滿整個窗口就暫停。

管線是各種 shell 環境的「黏合」最佳例證,例如管線就黏合了 Windows PowerShell 的各個指令,進而讓各個指令完成一件工作。再舉幾個管線的例子。首先是:

ipconfig | findstr "Address"

被管線黏合的 ipconfig 和 findstr 都是 Win32 既有的外部指令,前者會顯示、設定計算機的 IP 地址,后者則能以各種方式找出特定字符串。以上的敘述是將 ipconfig 的執行結果轉給 findstr,并讓 findstr 找出執行結果的 Address 字符串。

圖 2 ipconfig | findstr "address"執行結果圖 2 ipconfig | findstr "Address"執行結果

再舉兩個例子。以下的敘述會列出已停止的系統服務,但是由 get-service 和 where-object 相互協力完成,前者列出所有的系統服務,后者過濾出狀態為 Stopped 的系統服務:

get-service | where-object {$_.Status -eq "Stopped"}

但以上敘述的結果會以系統服務的名稱作為排列方式,若想以系統服務的「顯示名稱」依序排列,可以再加上 sort-object,并也以管線黏合:

get-service | where-object {$_.Status -eq "Stopped"} | sort-object -property DisplayName

圖 3 三重管線範例的執行結果
圖 3 三重管線范例的執行結果

新的腳本語言

微軟為 Windows PowerShell 創造了新的腳本語言,但若你熟悉任何一種腳本語言,你也能很快熟悉 Windows PowerShell 的腳本語言。基本上,只要將 Windows PowerShell 的指令放進擴展名為 .ps1 的文字文件,這個文件就是 Windows PowerShell 的腳本程序了。因此在熟悉了 Windows PowerShell 的命令操作之后,只要再熟悉 Windows PowerShell 腳本語言的變量、數組、循環控制、條件控制,大致上就語言的部分就差不多。但若要以腳本程序管理 Windows 系統,除了要熟悉腳本語言,當然也必須熟悉 Windows PowerShell 指令和 WMI,畢竟腳本語言的目的只是黏合這些現成的軟件組件。

執行腳本程序還有幾點注意事項,首先要確定腳本程序所在的位置是在執行路徑里。再者,由于 Windows PowerShell 顧慮到安全性,預設是禁止計算機系統執行任何腳本程序,如果要解禁,必須利用 Set-ExecutionPolicy 指令。這個指令有三個參數:

set-executionpolicy allsigned:允許執行具有信任簽章的腳本程序。 •

set-executionpolicy remotesigned:僅允許執行從遠程下載且具有信任簽章的腳本程序。 •

set-executionpolicy unrestricted:這是最寬松的條件,允許執行任何腳本程序,不管有沒有信任簽章。但自己編寫的腳本程序通常都沒有信任簽章。

善用腳本語言

從近十年的程序語言發展趨勢,能明顯發現腳本語言的發展比系統程序語言更多樣、更活絡,開發者的接受程度也高。當然,這兩種類型的程序語 言,各有適用之處,沒有誰取代誰的問題,而是如何選擇適當的方法來完成工作。John K. Ousterhout(Tcl/Tk 的創造者)曾在 Scripting: Higher Level Programming for the 21st Century 一文提出他的看法,他認為腳本語言的主要目的,是在「黏合」(glue)現有的軟件組件,而因為圖形操作接口、因特網、組件應用框架(component frameworks)的崛起,需要有更多、更好的腳本語言來黏合(因此腳本語言也稱為「黏合語言」(glue languages)或「系統整合語言」(system integration languages)。

當然,腳本語言本身能力的增進,以及計算機硬件的速度越來越快,也都是促進腳本語言蓬勃發展的原因。由于腳本語言大多采用直譯的方式執行,因此執行效能會比利用編譯的系統程序語言慢。不過當計算機硬件的速度越來越快,使用者就漸漸感覺不到腳本語言的速度較慢了。

簡單、易學、易用的腳本語言尤其適合專責系統或網絡管理的 IT 人員,因為腳本語言的起源就是為了便利系統操作,而且操作系統的供應者也都會加強這部份的功能,提供更簡易的語法、更豐富的組件,讓 IT 人員更易于「黏合」各項功能,而組合出絕對適合自身需要的腳本程序。

善用 Windows PowerShell

Windows PowerShell 將 Windows 環境各自分離的腳本語言(WSH)和操作指令重新緊密黏合,并且讓 Windows 擁有與 UNIX 旗鼓相當的 shell 環境和腳本語言,在在都讓 Windows 更適用于大型、復雜、重要的計算機運算環境。

當然 Windows PowerShell 的特色及優點尚不只本文所提,但只要依照本文,讀者將能下載、安裝并親自嘗試 Windows PowerShell 的功能,尤其 Windows PowerShell 將登錄數據庫視為磁盤驅動器來存取,實在非常適當,也非常簡便,因為機碼、機碼值的結構,便如同目錄、檔案。在你下載、安裝 Windows PowerShell 的同時,也別忘了下載官方相關文件,里面有最新的 Windows PowerShell 官方文件。

http://www.microsoft.com/taiwan/technet/columns/profwin/28-monad.mspx

參考數據及網絡資源

下載 Windows PowerShell:
http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx

TechNet Windows PowerShell Script Center:
http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx

MSDN Windows PowerShell Blog:
http://blogs.msdn.com/powershell/


posted on 2007-09-16 22:52 七星重劍 閱讀(585) 評論(0)  編輯 收藏 引用 所屬分類: PL--WindowsShell
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲视频免费在线| 久久精品天堂| 欧美日韩免费观看一区=区三区| 国内精品伊人久久久久av一坑| 久久精品中文字幕一区| 欧美在线亚洲在线| 亚洲国产精品久久久久久女王| 欧美大片一区二区三区| 欧美激情第9页| 欧美亚洲一区二区三区| 久久精品视频亚洲| 欧美伊人影院| 国产精品豆花视频| 欧美日韩一区二区在线播放| 99精品热视频| 午夜国产精品视频| 亚洲国产欧美精品| 亚洲淫性视频| 亚洲激情自拍| 先锋影音网一区二区| 一区二区三区在线免费视频| 亚洲国产天堂久久国产91| 欧美日韩国产在线播放| 久久精品官网| 欧美精品一区在线播放| 久久丁香综合五月国产三级网站| 欧美成人精品高清在线播放| 亚洲欧美激情诱惑| 狂野欧美一区| 久久激情视频| 免费一级欧美片在线播放| 国产欧美综合在线| 久久久久久穴| 国产精品大全| 日韩视频欧美视频| 亚洲国产欧美日韩另类综合| 亚洲色在线视频| 一区二区三区产品免费精品久久75| 欧美在线视频在线播放完整版免费观看| 亚洲人成人99网站| 久久免费午夜影院| 久久黄金**| 国产精品日韩在线观看| 亚洲日本理论电影| 亚洲第一在线综合在线| 性欧美8khd高清极品| 中文在线资源观看视频网站免费不卡| 久久精品国内一区二区三区| 国产一区二区主播在线| 国产专区欧美专区| 亚洲作爱视频| 亚洲精品视频在线观看免费| 欧美在线精品一区| 久久精品视频免费播放| 国产精品视频一区二区三区 | 欧美精品国产一区| 麻豆国产精品一区二区三区| 国产婷婷精品| 午夜国产精品视频免费体验区| 亚洲图片在区色| 欧美视频专区一二在线观看| 亚洲美女一区| 亚洲一级影院| 国产精品日韩欧美| 午夜精品一区二区三区在线| 亚洲综合精品四区| 国产精品普通话对白| 亚洲影院在线| 久久久精品午夜少妇| 狠狠久久五月精品中文字幕| 久久精品一二三| 欧美国产乱视频| 日韩视频永久免费观看| 欧美女人交a| 中文国产一区| 久久成人精品无人区| 国产综合色产在线精品| 浪潮色综合久久天堂| 亚洲国产一区二区三区青草影视| 最新日韩精品| 国产精品h在线观看| 亚洲综合三区| 欧美成人精品在线| 夜夜嗨av一区二区三区中文字幕 | 国产精品欧美久久| 久久av最新网址| 亚洲国产精品电影在线观看| 一本色道久久88亚洲综合88| 国产精品久久久久久久久果冻传媒| 亚洲综合国产| 亚洲成色777777在线观看影院| 99精品国产福利在线观看免费 | 欧美视频一区二区三区在线观看| 亚洲午夜激情| 欧美高清在线视频观看不卡| 一区二区三区高清视频在线观看| 国产精品视频yy9299一区| 久久精品99久久香蕉国产色戒| 欧美高清一区二区| 欧美亚洲一区二区在线观看| 在线观看亚洲| 国产精品你懂的在线欣赏| 老牛国产精品一区的观看方式| 日韩系列在线| 欧美激情二区三区| 欧美一区二区三区视频| 亚洲国产欧美在线| 国产日韩欧美在线| 欧美人与性动交a欧美精品| 欧美一区日韩一区| 一区二区免费在线观看| 欧美1区2区视频| 欧美一区二区三区日韩| 欧美日韩国产欧| 欧美成黄导航| 久久爱另类一区二区小说| 亚洲精品之草原avav久久| 国产日韩欧美视频| 欧美婷婷久久| 欧美精品在线一区二区三区| 久久久久成人精品| 欧美一级二区| 亚洲欧美日本伦理| 亚洲视频一二| 亚洲作爱视频| 日韩午夜在线观看视频| 亚洲国产精品久久精品怡红院| 久久免费黄色| 久久久人人人| 久久亚洲欧美国产精品乐播| 午夜精品一区二区三区四区 | 亚洲欧美久久久| 亚洲免费观看在线观看| 亚洲激情视频网站| 亚洲国产精品激情在线观看| 激情综合久久| 国内成+人亚洲| 国内外成人免费激情在线视频| 国产伦精品一区二区三| 国产精品视频yy9299一区| 国产精品久久久久久久久久三级| 欧美午夜久久| 国产精品伦一区| 国产日韩欧美麻豆| 国产一区二区三区四区五区美女| 国产精品久线观看视频| 国产麻豆9l精品三级站| 国产精品日韩久久久久| 国产日韩欧美精品一区| 国产一区二区av| 樱桃成人精品视频在线播放| 在线精品高清中文字幕| 亚洲国产一区二区三区在线播| 亚洲精品少妇30p| 一区二区不卡在线视频 午夜欧美不卡' | 亚洲精品乱码久久久久| 一本久道综合久久精品| 亚洲无线观看| 欧美一区二区三区免费大片| 久久国产高清| 欧美大胆a视频| 欧美视频在线一区二区三区| 国产精品久久一级| 激情视频一区二区三区| 91久久精品网| 亚洲欧美一区二区原创| 久久久久久久999| 亚洲第一网站免费视频| 亚洲精选视频免费看| 午夜精品久久久| 欧美成人官网二区| 国产精品久久久一本精品| 国产一区清纯| 99综合在线| 久久久久久久一区二区| 亚洲娇小video精品| 亚洲欧美日韩区| 欧美好骚综合网| 国产一区av在线| 亚洲社区在线观看| 久久影视精品| 亚洲一卡久久| 美国成人直播| 国产日韩欧美中文在线播放| 亚洲狠狠丁香婷婷综合久久久| 亚洲欧美日韩综合aⅴ视频| 欧美国产日韩视频| 性欧美xxxx视频在线观看| 欧美精品v日韩精品v韩国精品v | 韩国在线一区| 亚洲性视频h| 欧美成人午夜激情| 亚洲午夜一区二区三区| 久久久久久久久综合| 久久成人亚洲| 国产精品白丝av嫩草影院| 欧美无乱码久久久免费午夜一区 | 欧美成人精品一区二区三区| 国产一区二区精品久久91| 一区二区三区 在线观看视频|