一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

把批處理廢掉吧,向PowerShell進(jìn)軍

 nxhujiee 2016-09-29

把批處理廢掉吧,向PowerShell進(jìn)軍 2


打破批處理的習(xí)慣,向PowerShell進(jìn)軍

打破批處理的習(xí)慣,向PowerShell進(jìn)軍

PowerShell應(yīng)當(dāng)已經(jīng)名正言順地成為批處理(Cmd.exe shell腳本)的替代者了,但是因為一些原因,許多人都不是很情愿拋棄批處理。這篇文章將作為一個系列文章的開始幫助你打破批處理的習(xí)慣,向PowerShell進(jìn)軍。

在我進(jìn)入這些文章系列之前,我想先稍微講述一下關(guān)于批處理文件的一些歷史和為什么你需要使用PowerShell來代替老風(fēng)格的批處理代碼編寫你的腳本。

批處理文件的歷史

批處理文件擁有很悠久的歷史了,微機(jī)操作系統(tǒng)上的一個CP/M ,擁有可提交的命令,它可以將文本文件中的一系列命令逐行運行。它非常簡單(因為當(dāng)時的內(nèi)存很吃緊),不支持任何類型的條件分支。

當(dāng)開發(fā)MS-DOS時,微軟在它的Command.com命令解釋器中,也納入了非常類似的批處理功能:把命令存在一個文本文件中,命名為.Bat的擴(kuò)展名,然后命令解釋器就會運行它里面的每一個命令。

在以后的DOS版本中,微軟通過多種方式擴(kuò)展了批處理文件。增加了標(biāo)簽,GOTO語句,和If語句來處理分支。很重要的一點,批處理“語言”不是被設(shè)計出來的。它只是脫胎于CP/M可提交命令而已。

Windows NT 和 Cmd.exe

很快就到了Windows NT (1993)了,微軟納入了一個控制臺模式的應(yīng)用程序,Cmd.exe,直到這一天它也才呈獻(xiàn)給用戶的一個傳說中的“C: 提示符”。cmd.exe是舊的MS-DOS上的Command.com的一個超集,甚至使用很多相同的命令。命令類似,它的設(shè)計向后兼容,以確保用戶能夠運行舊的MS-DOS上的批處理文件。Cmd.exe也能運行帶有.Bat 擴(kuò)展名“批處理文件”。

Cmd.exe 和 Command.com之間的相似性是它對.Bat文件的向后兼容性,微軟剛開始選擇的Cmd.exe圖標(biāo)(“MS-DOS” logo)導(dǎo)致了用戶困惑多年。即使在今天我們在一些論壇社區(qū),還會看到一些提問“如何用DOS干什么什么”,事實上這關(guān)DOS鳥事。

Cmd.exe比 Command.com擁有更多的功能,相應(yīng)的也就是批處理文件的擴(kuò)展。其中就包括 For /f的迭代,簡單的使用Call命令來調(diào)用子程序,環(huán)境的指定(Setlocal and Endlocal)。雖然這些增強(qiáng),讓批處理“語言”更加實用,它仍然還是有許多缺陷,這讓寫一個簡單的批處理程序變成一件令人頭疼的事。

Windows Script 主機(jī)

從Windows 2000(1999)開始,微軟通過引入Windows Script Host 兩個真正的,內(nèi)置的,可編程語言(VBScript和JScript 微軟版本低Javascript)來增強(qiáng)它的腳本功能。 WSH腳本依賴于COM對象來在操作系統(tǒng)和應(yīng)用程序之間進(jìn)行交互。盡管WSH極其實用和強(qiáng)大,它受限于機(jī)器上必須安裝所需的COM對象,并且沒有提供命令行界面。

進(jìn)入 Windows PowerShell

批處理和WSH腳本沒有提供一致性,因為它們是兩種分開的增強(qiáng)工具,擁有不同的用戶接口(批處理和wSH腳本是兩碼事)。微軟意識到了這一點,在2006年發(fā)布了Windows PowerShell的第一個版本,結(jié)束了列國混戰(zhàn)的局面,一統(tǒng)了Windows腳本的江湖。PowerShell基于.NET 框架,提供了一個命令行,和管理Windows 操作系統(tǒng)的接口。

現(xiàn)在我們擁有了Windows PowerShell,沒有任何必要再去編寫舊式的的批處理文件(Cmd.exe shell腳本)。展望未來吧,你應(yīng)當(dāng)將你的精力放在學(xué)習(xí)PowerShell上,主要是因為微軟已經(jīng)將PowerShell定位成Windows操作系統(tǒng)自動化和企業(yè)應(yīng)用程序管理的默認(rèn)工具了。

為什么是時候停止寫批處理了

這里給出你應(yīng)當(dāng)停止寫批處理文件,而轉(zhuǎn)向PowerShell腳本的五個理由。

  1. PowerShell是未來,是標(biāo)桿。微軟已經(jīng)將PowerShell定位為Windows操作系統(tǒng)和微軟企業(yè)應(yīng)用程序管理的默認(rèn)工具了。許多第三方供應(yīng)商也提供了PowerShell類庫用來管理他們的產(chǎn)品。
  2. 批處理是晦澀難懂的,它有很多缺陷。我以前經(jīng)常去一些腳本提問的網(wǎng)站,我都數(shù)不清我問過多少次諸如為什么環(huán)境變量展開后不正確啦,為什么命令運行后不正確啦。真的沒有必要把自己耗在cmd.exe上了。批處理的限制太多了,投入到PowerShell的懷抱中吧!
  3. PowerShell是支持批處理和命令行的,轉(zhuǎn)向PowerShell并不是說拋棄了批處理,老式的批處理文件仍然可以在PowerShell上很好地運行,命令行工具也仍然在PowerShell上能夠完美兼容運行。
  4. PowerShell是真正的腳本編程語言,你可能還沒有嘗到PowerShell的甜頭,尤其當(dāng)你嘗試體驗一些復(fù)雜邏輯時,在PowerShell中明顯比CMD.exe要簡單地多。許多時候,一行PowerShell命令行,能夠替代成百上千的批處理代碼。
  5. PowerShell 使用的是對象,不像Cmd.exe和其它基于文本的Shell只能使用文本的命令輸出。另一方面PowerShell使用的是.NET 對象,那些昔日在批處理中比較棘手的問題(比如日期時間的解析)在PowerShell中變得出奇的簡單。

扔下批處理吧

Cmd.exe短期內(nèi)不會消亡,但是也沒有什么理由值得我們在這老式的批處理語言上煞費苦心,把它扔下來,使用PowerShell來代替它吧!

接下來: 我可能會寫一些批處理和PowerShell之間的語法對比。敬請期待!

原文作者:Bill Stewart

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩一区二区免费在线观看| 亚洲视频偷拍福利来袭| 欧美人与动牲交a精品| 免费亚洲黄色在线观看| 亚洲中文字幕亲近伦片| 日韩不卡一区二区三区色图| 丰满人妻一二三区av| 欧美色婷婷综合狠狠爱| 国产午夜精品久久福利| 两性色午夜天堂免费视频| 色播五月激情五月婷婷| 国产精品丝袜美腿一区二区| 91超精品碰国产在线观看| 色一欲一性一乱—区二区三区| 亚洲欧美日韩在线看片| 在线观看中文字幕91| 一区二区不卡免费观看免费| 亚洲熟女熟妇乱色一区| 亚洲乱妇熟女爽的高潮片| 国产水滴盗摄一区二区| 美国女大兵激情豪放视频播放| 亚洲国产精品久久琪琪| 日本不卡在线一区二区三区| 国内精品美女福利av在线| 亚洲欧美国产网爆精品| 亚洲国产av精品一区二区| 日韩一区二区三区有码| 亚洲国产av一二三区| 激情内射亚洲一区二区三区| 亚洲人午夜精品射精日韩 | 老司机精品线观看86| 尤物天堂av一区二区| 久久福利视频视频一区二区| 午夜传媒视频免费在线观看| 色婷婷视频国产一区视频| 欧美胖熟妇一区二区三区| 色丁香一区二区黑人巨大| 91久久精品中文内射| 黑色丝袜脚足国产一区二区| 欧美激情视频一区二区三区| 国产又粗又猛又长又黄视频|