2009-07-12 78 views
4

命令行多年來一直困擾着我。我從1999年開始,所以我已經被GUI所寵壞了。用我的好ol'鼠標指向並點擊。十年後,我有一些基本的命令行語句:cd,dir,rm,ipconfig等。除此之外別無他法。哎呀,即使我的鍵盤快捷鍵也相當有限:複製,粘貼,剪切,刷新瀏覽器;但我想這是一個完全不同的話題。Windows開發人員應該知道命令行嗎?

現在我還看到一些名爲「Windows Powershell」的東西。它似乎比cmd.exe更強大,面向系統管理員 - 很酷。然而,我是一個Web開發人員:基本上所有與ASP.NET相關的東西。當它來到代碼的時候,我住在Visual Studio中。

會像我這樣的開發人員獲得從整合Windows外殼程序到我的日常工作流程什麼?當我長大,我更感興趣的是重於形式的功能,即 - 最近購買了ThinkPad和專門使用指點杆:)我所有關於使用直線從點A到B點

什麼說一下我的情況和一般的Windows開發人員?

+2

只有你關心生產力。 – 2009-07-14 20:52:41

回答

11

即使在Windows環境中,命令行腳本編寫也可能非常有用。腳本可用於自動部署和監視目的。不幸的是,默認的「cmd.exe」接口和命令有點笨拙,所以使用基於Unix的shell並不是那麼有趣。 Powershell是對cmd的一個巨大改進,所以我建議學習Powershell的基礎知識,看看它是否對你有用。

3

有每個優點,所以我會建議你學習PowerShell中,至少足以讓它是否能在您的情況幫感。我發現如果GUI不支持重複操作,像Powershell這樣的豐富的命令行用戶界面可以加速它們。有時候,讓所有的巫師脫光衣服,熟悉事物在較低層次的工作方式,是非常令人耳目一新的教育。

2

在某些情況下,它可以用於快速自動執行一些小任務。例如,我使用批處理文件將Firefox擴展打包成XPI文件。但除此之外,從開發的角度來看,我真正在Windows上使用它的唯一時間是構建只有Makefiles的第三方庫。

從一個系統管理員的角度來看它可以是非常有用的,因爲您可以快速訪問大量的系統功能,否則將需要的控制面板窗口耗時的導航。啓動/停止服務,管理防火牆和其他安全功能等

2

如果您...

a)用文件

B)做文件同樣的事情工作不止一次

...你也許可以救自己通過學習批處理文件或命令行時間。

我通常有3 cmd.exe shell在任何時候打開。一個用於構建('發佈平臺'),一個用於greps,另一個用於我需要做的任何事情。如果你做任何大規模刪除命令行效率更高,而且你對文件做的任何事情都應該儘可能地用.bat實現自動化。

我還沒有使用PowerShell的,但它似乎是在一批很好的改善,這是相當有限的。當我需要更多的權力時,我通常會切換到Python。

2

這取決於你在做什麼樣的工作。

  • 如果您只關注開發本身,那麼您可能沒有太多的用途來使用Powershell。

  • 如果你還必須照顧部署或用戶支持等東西,它可能會幫助你很多。

有一個快速瀏覽一下this question讓你可以使用PowerShell什麼的想法。

0

命令行是非常強大的武器。在Powershell中,您可以使用.NET語言來創建腳本。

我推薦Server 2003資源工具包中的cmd工具(在Windows Vista中是默認的,我認爲)。

Windows Server 2003 Resource Kit Tools

我使用自動化某些操作CMD線和PowerShell,當我部署我的應用程序。

5

Unix開發人員利用命令行數十年。 PowerShell與Windows平臺和產品的深度集成(Excel等)可以實現我們許多日常工作的自動化。

Andy White強調了幾個關鍵方面PowerShell比方便。

結賬PowerBoots and some of its uses與Tcl/Tk類似,受Ruby Shoes的啓發。

0

如果您打算利用Velocity(來自MS的分佈式緩存解決方案),則需要學習PowerShell,因爲這是配置它的唯一方法。

以一致的方式配置IIS是PowerShell的另一個優點。

3

作爲一名.NET開發人員,我發現PowerShell非常有用。我將它用作交互式.NET REPL。我可以經常在PowerShell提示符下嘗試我的實驗,而不是編寫小型控制檯應用程序來試驗.NET類型。例如,假設我想弄清楚我想用一個DateTime對象,其特定的格式字符串:

PS> "{0:R}" -f [DateTime]::Now 
Mon, 13 Jul 2009 11:15:34 GMT 

正如其他人所說的,如果你做任何形式的重複任務這是非常值得的努力,學習PowerShell,以便您可以自動完成這些任務。重複任務容易出錯,並且可能會嚴重傷害你(即RS傷害)。就拿,通過所有源循環並刪除所有bin和OBJ迪爾斯:

PS> dir . -r | 
    where {$_.PSIsContainer -and $_.Name -match '^(bin|obj)$'} | 
    remove-item -r -whatif 

PowerShell還可以很容易地切開並從PC骰子XML和WMI信息。想要了解你的BIOS信息:

PS> Get-WmiObject Win32_BIOS 

想看看有多少內存插槽都在您的電腦打開(在不取下蓋):

PS> gwmi Win32_PhysicalMemory | 
    Format-Table Description, DeviceLocator, Capacity -auto 

此外,由於PowerShell引擎很容易hostable,值得從應用程序中用作腳本環境。如果這些應用程序更像是系統管理應用程序,這就很有意義。 OTOH更傳統的腳本,我可能會主持IronPython引擎。

相關問題