婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Windows PowerShell是啥?看完本文你就懂它了

Windows PowerShell是啥?看完本文你就懂它了

熱門標(biāo)簽:電話智能外呼系統(tǒng)誠(chéng)信合作 真人和電話機(jī)器人對(duì)話 金融電銷公司怎么辦理外呼系統(tǒng) 雷霆電話機(jī)器人電話 信陽(yáng)話務(wù)外呼系統(tǒng)怎么收費(fèi) 使用電話機(jī)器人電銷是否違法 湖州電銷防封卡 安徽400電話辦理 什么渠道可以找外呼系統(tǒng)客戶

引子

一直很羨慕Linux的命令提示符(當(dāng)然他們叫Shell)。正則表達(dá)式,管道,各種神奇的命令,組合起來(lái)就能高效完成很多復(fù)雜的任務(wù)。效率實(shí)在是高。流了n年的哈喇子以后,終于有幸用上了Win7,邂逅了cmd的升級(jí)版:Windows PowerShell。從此暗爽無(wú)比,原來(lái)Windows下也有這樣的利器呀~
看看下面的Windows腳本,不到15行有效代碼。在Win7下只要右擊腳本文件,選擇Run with PowerShell,就會(huì)自動(dòng)找到最占內(nèi)存的10個(gè)進(jìn)程,然后將它們占用的內(nèi)存畫(huà)成一個(gè)三維餅圖,如下圖所示。

復(fù)制代碼 代碼如下:

# create new excel instance
 $objExcel = New-Object -comobject Excel.Application
 $objExcel.Visible = $True
 $objWorkbook = $objExcel.Workbooks.Add()
 $objWorksheet = $objWorkbook.Worksheets.Item(1)

 # write information to the excel file
$i = 0
$first10 = (ps | sort ws -Descending | select -first 10)
$first10 | foreach -Process {$i++; $objWorksheet.Cells.Item($i,1) = $_.name; $objWorksheet.Cells.Item($i,2) = $_.ws}
$otherMem = (ps | measure ws -s).Sum - ($first10 | measure ws -s).Sum
$objWorksheet.Cells.Item(11,1) = "Others"; $objWorksheet.Cells.Item(11,2) = $otherMem

# draw the pie chart
$objCharts = $objWorksheet.ChartObjects()
$objChart = $objCharts.Add(0, 0, 500, 300)
$objChart.Chart.SetSourceData($objWorksheet.range("A1:B11"), 2)
$objChart.Chart.ChartType = 70
$objChart.Chart.ApplyDataLabels(5)

(1. 這個(gè)腳本調(diào)用了Excel的COM庫(kù)。 2. 當(dāng)然從命令耦合的角度來(lái)看,輸出成文本格式更有利,但這個(gè)例子主要想說(shuō)明PowerShell的強(qiáng)大以及微軟產(chǎn)品優(yōu)異的復(fù)用性。 3. 要手動(dòng)啟動(dòng)PowerShell,可以在開(kāi)始菜單的搜索框中直接鍵入PowerShell回車即可)
簡(jiǎn)單領(lǐng)略PowerShell的強(qiáng)大之后,下文就從幾個(gè)方面介紹一下PowerShell相對(duì)于以往版本的命令提示符甚至Linux Shell的優(yōu)勢(shì)。

Cmdlet + Regex + Pipeline + ...

以往cmd相對(duì)于Shell有很多不足,比如命令偏少,部分命令功能偏弱,對(duì)正則表達(dá)式不支持等等。但現(xiàn)在PowerShell一下趕上來(lái)不少。2.0 RTM版內(nèi)建支持414個(gè)命令(術(shù)語(yǔ)稱為cmdlet),支持正則表達(dá)式,強(qiáng)大的管道應(yīng)用(其實(shí)管道本身的功能和以前差不多,關(guān)鍵是冒出來(lái)一堆能用管道的命令,比如more, sort, foreach等等),和系統(tǒng)的聯(lián)系也比以前緊密了很多。

舉幾個(gè)例子來(lái)說(shuō)明:

dir registry::HKEY_CURRENT_USER可以直接顯示注冊(cè)表相應(yīng)位置的內(nèi)容,可以看到dir的功能改進(jìn)了不少。

ps | sort ws -Descending | select -first 10可以顯示占用內(nèi)存最大的10個(gè)進(jìn)程,可以看到管道的靈活應(yīng)用。

dir -Name | ? {$_ -match "(?num>.).*(\knum>)"}可以顯示出當(dāng)前目錄下文件名有重復(fù)字符的文件。比如abcda.efg,而abcd.efg則不會(huì)顯示出來(lái)。可以看到PowerShell對(duì)正則表達(dá)式的支持相當(dāng)強(qiáng)大。(確切的說(shuō)嚴(yán)格的正則表達(dá)式 已經(jīng)無(wú)法實(shí)現(xiàn)這樣的效果,需要上下文無(wú)關(guān)文法 才能夠支持。)
以前為了演示Linux Shell的強(qiáng)大,Stephenjy發(fā)了一個(gè)自己的截圖,在遇見(jiàn)PowerShell前覺(jué)得好神奇,所幸現(xiàn)在也可以實(shí)現(xiàn)了。:-)

(為了節(jié)約顯示空間,PowerShell的部分顯示結(jié)果被刪除,但這個(gè)Prompt效果可以用以下腳本驗(yàn)證: function prompt {"($env:username)-($env:computername)-(`$?: $?)-(jobs: $((get-job | measure).Count))-($(get-location))`n(! $(((history)[-1]).ID + 1))->"})

大殺器 - 面向?qū)ο?/strong>

Linux的設(shè)計(jì)思想決定所有的輸入和輸出都盡可能是文本格式,這樣可以方便各進(jìn)程間的合作。同樣這也要求各個(gè)程序提供一定強(qiáng)度的文本解析能力。但Windows的思想與此不同,PowerShell中很多輸入輸出都不是普通的文本(plain text),而是一個(gè)個(gè)對(duì)象(objects)。因此與其說(shuō)PowerShell是一種交互環(huán)境,不如說(shuō)它是一種強(qiáng)大語(yǔ)言的Runtime,而這種語(yǔ)言甚至是面向?qū)ο蟮摹?/p>

比如當(dāng)鍵入get-process查看當(dāng)前進(jìn)程列表時(shí),系統(tǒng)返回的是這樣的列表:

復(fù)制代碼 代碼如下:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    318       8    12948       3872    84            1728 AppleMobileD
    115       5    13816      13328    38            6920 audiodg
   1315      21    11732      10988   108            2544 CcmExec
... ...

雖然看似一般的格式化文本,但其實(shí)這是一個(gè)數(shù)組,而每個(gè)數(shù)組元素又是Process類型的對(duì)象。同.NET一脈相承,PowerShell中的所有的類都繼承自O(shè)bject,且支持GetType()函數(shù)。因此我們可以執(zhí)行(get-process).GetType()來(lái)看看它的類型:

復(fù)制代碼 代碼如下:

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

而數(shù)組中每個(gè)元素的類型可以用(get-process)[0].GetType()查看:
復(fù)制代碼 代碼如下:

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    Process                                  System.ComponentM...

其中面向思想的思想非常明顯,類成員,方法,繼承都出現(xiàn)了。個(gè)人感覺(jué)這樣的好處并不是指望能用PowerShell寫(xiě)什么大型軟件,而是體現(xiàn)在另外兩個(gè)方面:首先,這樣讓內(nèi)置的cmdlet及其數(shù)據(jù)結(jié)構(gòu)組織清晰,符合直覺(jué),寫(xiě)代碼時(shí)速度快不容易出錯(cuò)。第二,對(duì)面向?qū)ο蟮膬?nèi)建支持也為后面無(wú)縫接合.NET和COM接口提供了基礎(chǔ)。

站在巨人的肩膀上 - 無(wú)縫調(diào)用.NET/COM

.NET Framework中包含了一個(gè)異常強(qiáng)大的庫(kù),而微軟為了保證二進(jìn)制層面上跨語(yǔ)言的兼容性,很多庫(kù)都是用COM封裝的。PowerShell的一大特色就是可以直接調(diào)用這些庫(kù)。比如前面的示例用$objExcel = New-Object -comobject Excel.Application創(chuàng)建了一個(gè)Excel對(duì)象。而wikipedia上的一個(gè)腳本更示范了這種無(wú)縫調(diào)用的強(qiáng)大。下面這個(gè)3句話的腳本的作用是顯示一個(gè)RSS源最近的8篇文章的標(biāo)題。注意其中網(wǎng)絡(luò)連接,內(nèi)容下載,XML解析等工作全部由.NET庫(kù)完成,正因?yàn)檎驹诰奕说募绨蛏希琍owerShell在實(shí)際使用中往往左右逢源,簡(jiǎn)潔高效。

復(fù)制代碼 代碼如下:

$rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"
$blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl)
$blog.rss.channel.item | select title -first 8

編輯,運(yùn)行,調(diào)試 - IDE

Windows程序開(kāi)發(fā),尤其是基于微軟技術(shù)的開(kāi)發(fā)很爽的一點(diǎn)就是有強(qiáng)大的IDE和專業(yè)的文檔作支持。不論是Windows下的Visual Studio還是Linux下的Mono Develop,甚至連PowerShell這樣的語(yǔ)言都有集編輯與調(diào)試為一體的IDE:Windows PowerShell ISE。有了自動(dòng)完成,即時(shí)腳本交互,調(diào)試甚至遠(yuǎn)程調(diào)試,PowerShell腳本寫(xiě)起來(lái)“甚爽甚強(qiáng)巨”。當(dāng)然文檔也是一般的強(qiáng)大,MSDN中關(guān)于PowerShell的部分依舊專業(yè)浩瀚。

蛋疼的偽裝 - Profile

有了PowerShell以后,很少就去cmd了。不過(guò)作為一個(gè)蛋疼的裝B男,把PowerShell偽裝成cmd也是挺有樂(lè)趣的一件事。不難發(fā)現(xiàn)PowerShell和cmd僅僅在圖標(biāo),標(biāo)題,背景色,提示符,以及剛啟動(dòng)時(shí)的顯示文字五個(gè)方面不同。圖標(biāo)和背景色在快捷方式屬性中可以很方便的修改。而標(biāo)題和提示符的修改就要用到Profile了。所謂Profile就是在每次啟動(dòng)PowerShell時(shí)都首先自動(dòng)運(yùn)行的一段腳本。這個(gè)腳本的路徑在$profile變量中有設(shè)定。只要設(shè)定$host.UI.RawUI.WindowTitle為C:\windows\system32\cmd.exe就能將標(biāo)題偽裝為cmd。而自定義提示符為當(dāng)前路徑在PowerShell中自然萬(wàn)分簡(jiǎn)單。至于啟動(dòng)時(shí)的顯示文字,只要通過(guò)/nologo參數(shù)隱藏原有的版本信息,再打印一行cmd中的文字就好了。最終效果如圖:(關(guān)于Profile,可以參見(jiàn)這個(gè)鏈接)

另:進(jìn)程級(jí)工作調(diào)度 – 并行支持?

==========================================================
隨著多核處理器的迅速發(fā)展,從.NET Framework 4.0開(kāi)始,并行計(jì)算被一再?gòu)?qiáng)調(diào)。從System.Threading中新增加的并行工具類到F#這種非常適合并行化的函數(shù)式語(yǔ)言,微軟適時(shí)對(duì)線程級(jí)并行提供了強(qiáng)大的支持。但是對(duì)于進(jìn)程級(jí)的工作調(diào)度,Windows似乎還相當(dāng)原始。舉個(gè)最簡(jiǎn)單的例子來(lái)說(shuō),如果我們同時(shí)向一個(gè)移動(dòng)硬盤(pán)啟動(dòng)5個(gè)拷貝會(huì)話的話,Windows會(huì)同時(shí)開(kāi)始所有的拷貝操作。這樣磁頭會(huì)在不同的目標(biāo)位置間反復(fù)進(jìn)行無(wú)意義的移動(dòng)(尋道),于是在硬盤(pán)燈的狂閃中,大量時(shí)間就被浪費(fèi)了。同樣當(dāng)我們同時(shí)啟動(dòng)數(shù)個(gè)計(jì)算量大的進(jìn)程時(shí),Windows也會(huì)試圖讓這些進(jìn)程“齊頭并進(jìn)”。然而為了避免某個(gè)進(jìn)程被餓死,系統(tǒng)又不得不頻繁切換進(jìn)程,于是大量的時(shí)間又被浪費(fèi)在了保存現(xiàn)場(chǎng),進(jìn)程切換,恢復(fù)現(xiàn)場(chǎng)上。這樣來(lái)看,進(jìn)程級(jí)的并行做的反而不夠好。

所幸PowerShell中加入了任務(wù)調(diào)度管理功能。通過(guò)簡(jiǎn)單的實(shí)驗(yàn),我們可以發(fā)現(xiàn)PowerShell對(duì)jobs的調(diào)度和Windows默認(rèn)的大不相同,它一般維持和CPU核心數(shù)相同的進(jìn)程高速運(yùn)轉(zhuǎn),而其它進(jìn)程僅僅占用小部分CPU時(shí)間。直到前面的進(jìn)程結(jié)束工作后,后面才有新的進(jìn)程遞補(bǔ)進(jìn)入高速運(yùn)轉(zhuǎn)的狀態(tài)。==========================================================
后來(lái)更仔細(xì)地做了實(shí)驗(yàn)以后發(fā)現(xiàn),原來(lái)Windows內(nèi)置的進(jìn)程調(diào)度方案就是小部分高速運(yùn)轉(zhuǎn)(在我的雙核處理器上是兩個(gè)進(jìn)程占用50%CPU),大部分低速跟進(jìn)(其他所有進(jìn)程分享剩下的50%CPU)。這樣PowerShell的工作調(diào)度并沒(méi)有改善系統(tǒng)原有的現(xiàn)狀。同時(shí)由于PowerShell的調(diào)度系統(tǒng)需要占用不小的內(nèi)存,初始化也需要時(shí)間。在實(shí)測(cè)中甚至比默認(rèn)調(diào)度慢了50%。這個(gè)實(shí)驗(yàn)結(jié)果比較囧。不曉得為什么PowerShell中為什么要加入Job這個(gè)東西,難道僅僅為了異步調(diào)用嗎?

您可能感興趣的文章:
  • 25個(gè)常用PowerShell命令總結(jié)
  • Windows Powershell 介紹和安裝
  • Powershell實(shí)現(xiàn)編寫(xiě)和運(yùn)行腳本
  • 淺談CMD和win powershell的區(qū)別
  • PowerShell讀取文件內(nèi)容、替換文件內(nèi)容、讀取限定行的例子
  • PowerShell中使用Get-Date獲取日期時(shí)間并格式化輸出的例子
  • PowerShell 入門基礎(chǔ)教程
  • Win8系統(tǒng)中使用PowerShell安裝APPX應(yīng)用命令介紹
  • 使用 powershell 創(chuàng)建虛擬機(jī)

標(biāo)簽:湛江 六盤(pán)水 岳陽(yáng) 山南 德州 鶴崗 運(yùn)城 濟(jì)南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Windows PowerShell是啥?看完本文你就懂它了》,本文關(guān)鍵詞  Windows,PowerShell,是啥,看完,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Windows PowerShell是啥?看完本文你就懂它了》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Windows PowerShell是啥?看完本文你就懂它了的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产成人一级电影| 亚洲午夜视频在线| 麻豆精品视频在线观看免费| 综合久久综合久久| 久久午夜老司机| 久久国产三级精品| 免费人成精品欧美精品| 韩国毛片一区二区三区| 国产在线视频不卡二| 国内精品嫩模私拍在线| 99精品1区2区| 91精品国模一区二区三区| 欧美精品色一区二区三区| 精品国产91久久久久久久妲己| 日韩视频在线你懂得| 中文字幕一区二区视频| 国产高清精品网站| 国产欧美视频一区二区| 亚洲一区二区三区中文字幕 | 欧美绝品在线观看成人午夜影视| 高清av一区二区| 日韩一区二区在线观看| www国产成人| 日韩1区2区日韩1区2区| 欧美午夜精品理论片a级按摩| 日韩三级中文字幕| 国产精品丝袜久久久久久app| 日韩欧美黄色影院| 亚洲国产精品精华液网站| 白白色亚洲国产精品| 国产亚洲女人久久久久毛片| 国产精品一二二区| 国产视频一区二区三区在线观看| 精品一区二区三区久久| 亚洲欧美区自拍先锋| 日本亚洲视频在线| 欧美电视剧免费全集观看| 婷婷综合另类小说色区| 日韩欧美专区在线| 亚洲视频一区在线观看| 99riav久久精品riav| 玉米视频成人免费看| 精品盗摄一区二区三区| 国内精品在线播放| 欧美国产精品一区二区| 色一情一伦一子一伦一区| 亚洲一区二区精品久久av| 欧美精选在线播放| 91国产福利在线| 99国产欧美另类久久久精品| 精品福利在线导航| 国产主播一区二区三区| 一区二区三区色| 久久久久久亚洲综合| 在线观看视频欧美| 精品一区二区三区久久久| 亚洲高清不卡在线| 成人国产电影网| 青青青爽久久午夜综合久久午夜| 337p粉嫩大胆噜噜噜噜噜91av| 日本韩国精品一区二区在线观看| 亚洲欧美偷拍卡通变态| 久久精品综合网| 精品久久久久久久久久久久久久久| 色婷婷精品久久二区二区蜜臂av| 国产综合色在线视频区| 亚洲18女电影在线观看| 亚洲欧洲精品成人久久奇米网| 久久综合久色欧美综合狠狠| 欧美一级理论片| 成人不卡免费av| 51精品国自产在线| 国产91精品久久久久久久网曝门 | 久久综合资源网| 久久99国产精品免费网站| 欧美妇女性影城| 欧美三级日本三级少妇99| 色欧美片视频在线观看 | 青娱乐精品视频| 日本成人在线看| 大桥未久av一区二区三区中文| 99热精品一区二区| 成人免费三级在线| 97久久人人超碰| 99国产精品国产精品毛片| 成人免费毛片aaaaa**| 91精品国产综合久久久久 | 国产成人在线视频网站| 国产丝袜美腿一区二区三区| 一区二区三区精品在线| 一区二区三区日韩欧美| 亚洲一二三四在线| 国内精品国产成人国产三级粉色 | 国产99精品国产| 欧美日韩免费观看一区三区| 久久久亚洲午夜电影| 久久日韩精品一区二区五区| 中文字幕在线观看不卡| 三级在线观看一区二区| 免费成人在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区日韩电影| 91视视频在线直接观看在线看网页在线看| 粉嫩一区二区三区性色av| 欧美久久久久久久久久| 欧美日韩精品一区视频| 精品国产伦理网| 欧美大胆一级视频| 亚洲欧美日韩久久| 另类专区欧美蜜桃臀第一页| 久久成人麻豆午夜电影| 18成人在线观看| 免费成人av资源网| 日韩制服丝袜av| 丁香激情综合五月| 538在线一区二区精品国产| 天天亚洲美女在线视频| 国产在线一区二区综合免费视频| 色欧美乱欧美15图片| 欧美精品一区二区高清在线观看| 欧美一级片免费看| 美国精品在线观看| 亚洲国产精品久久久男人的天堂| 成人动漫一区二区| 欧美在线观看你懂的| 国产欧美一区二区在线观看| 午夜久久久久久电影| 色婷婷久久99综合精品jk白丝| 国产精品美日韩| 一本大道久久精品懂色aⅴ| 一区二区在线观看视频在线观看| 色综合天天狠狠| 日本一区二区免费在线观看视频 | 免费成人结看片| 成人动漫中文字幕| 亚洲国产精品精华液ab| 日本在线不卡视频| 欧美一区永久视频免费观看| 色呦呦网站一区| 亚洲国产日韩综合久久精品| 91色九色蝌蚪| 亚洲一区免费观看| 亚洲精品一线二线三线无人区| 亚洲不卡一区二区三区| 欧美一区二区性放荡片| 国产成人日日夜夜| 欧美经典三级视频一区二区三区| 东方aⅴ免费观看久久av| 欧美日韩国产高清一区二区| 国产乱人伦偷精品视频免下载 | xf在线a精品一区二区视频网站| 国产传媒欧美日韩成人| 欧美日韩精品久久久| 麻豆精品一二三| 麻豆高清免费国产一区| www.视频一区| 中文字幕日韩一区| 久久众筹精品私拍模特| 日韩欧美中文字幕一区| 麻豆中文一区二区| 亚洲精品成人天堂一二三| 这里只有精品99re| 国产成人免费9x9x人网站视频| 欧美aaaaa成人免费观看视频| 日韩国产精品久久| 久久久久国产精品人| 欧美精品一区在线观看| 欧美日韩国产小视频| 欧美一区二区在线免费播放 | 亚洲乱码精品一二三四区日韩在线| 精品国免费一区二区三区| 成人精品免费网站| 91成人免费电影| 制服视频三区第一页精品| 日韩欧美一二三| 中文字幕亚洲一区二区av在线 | 日韩电影一区二区三区| 成人免费观看视频| 精品国产一区二区三区久久久蜜月| 91久久精品一区二区| 午夜激情一区二区| 91亚洲午夜精品久久久久久| 亚洲成a人v欧美综合天堂下载 | 一区二区三区在线视频免费 | 日韩精品一区二区三区老鸭窝 | 亚洲一区二区三区视频在线| 婷婷一区二区三区| 国产福利一区在线观看| 欧洲视频一区二区| 视频一区二区中文字幕| 一区二区三区精品视频| 国产乱理伦片在线观看夜一区| 欧洲av一区二区嗯嗯嗯啊| 欧美高清在线精品一区| 一区二区激情视频| 日韩电影在线观看网站| 欧美日韩国产一级片| 国产日产欧美精品一区二区三区| 老司机免费视频一区二区| 精品少妇一区二区三区日产乱码 |