Windows开发人员应该知道命令行吗?

时间:2009-07-12 20:53:38

标签: windows powershell

命令行多年来一直困扰着我。我从1999年开始,所以我已经被GUI宠坏了;用我的好老鼠指点并点击。十年后,我有一些基本的命令行声明:cd,dir,rm,ipconfig等。除此之外别无其他。哎呀,即使我的键盘快捷键也相当于:复制,粘贴,剪切,刷新浏览器;但我想这完全是另一个话题。

现在我也看到了一个名为“Windows PowerShell”的东西。它似乎比cmd.exe更强大,并且面向系统管理员 - 很酷。但是,我是一名Web开发人员:基本上与ASP.NET有关。当我需要敲击代码时,我就住在Visual Studio中。

像我这样的开发人员可以通过将Windows shell整合到我的日常工作流程中获得任何收益吗?随着年龄的增长,我对表格的功能更感兴趣,即 - 我最近购买了ThinkPad并专门使用TrackPoint :)我就是用直线从A点到B点。

您对我的情况和一般的Windows开发人员有什么看法?

9 个答案:

答案 0 :(得分:12)

即使在Windows环境中,命令行脚本也非常有用。脚本可用于自动部署和监视目的。不幸的是,默认的“cmd.exe”界面和命令有点笨拙,因此使用基于Unix的shell并不是那么有趣。

PowerShell是对cmd的巨大改进,因此我建议您学习PowerShell的基础知识,看看它是否对您有用。

答案 1 :(得分:5)

几十年来,Unix开发人员一直在利用命令行。 PowerShell与Windows平台和产品的深度集成(Excel等)可以实现我们日常家务的自动化。

Andy White强调了PowerShell的几个关键领域。

查看类似于Tcl / Tk的PowerBoots and some of its uses,并灵感来自Ruby Shoes。

答案 2 :(得分:4)

作为.NET开发人员,我发现PowerShell非常有用。我将它用作交互式.NET REPL。而不是编写小型控制台应用程序来试验.NET类型,我可以经常从PowerShell提示符尝试我的实验。例如,假设我想弄清楚我想要用于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引擎很容易托管,因此值得将其用作应用程序中的脚本环境。如果这些应用程序更像是系统管理员应用程序,那么这很有意义。 OTOH用于更传统的脚本,我可能会托管IronPython引擎。

答案 3 :(得分:3)

每个都有优势,所以我建议你学习PowerShell,至少足以让你了解它是否对你的情况有所帮助。我发现如果GUI不能很好地支持重复操作,那么像PowerShell这样丰富的命令行用户界面可以真正加快它们的速度。

有时候剥离所有的巫师并熟悉事情在较低层次的运作方式,这是非常令人耳目一新和有教育意义的。

答案 4 :(得分:2)

在某些情况下,它可以用于快速自动化一些小任务。例如,我使用批处理文件将Firefox扩展打包成XPI文件。但除此之外,从开发的角度来看,我唯一真正在Windows上使用它的是构建只有Makefile的第三方库。

从系统管理员的角度来看,它非常有用,因为您可以快速访问许多系统功能,否则这些功能需要耗时的控制面板窗口导航。启动/停止服务,管理防火墙和其他安全功能等。

答案 5 :(得分:2)

如果你...

a)使用文件

b)不止一次对文件做同样的事情

...您可以通过学习批处理或命令行来节省时间。

我通常一直打开三个cmd.exe shell。一个用于构建('制作发布平台'),一个用于greps,一个用于我必须做的任何事情。如果你做任何批量删除命令行效率更高,你在文件上做的任何事情都应该尽可能自动地使用.bat。

我没有使用PowerShell,但它似乎是批量的一个很好的改进,这是非常有限的。当我需要更多电源时,我通常会切换到Python。

答案 6 :(得分:2)

这取决于你正在做的工作。

  • 如果您只专注于开发本身,那么PowerShell可能没什么用。

  • 如果您还需要处理部署或用户支持等问题,它可能会对您有所帮助。

快速查看this question,了解可以使用PowerShell的内容。

答案 7 :(得分:0)

命令行是一种非常强大的武器。在PowerShell中,您可以使用.NET语言来创建脚本。

我推荐使用Windows Server 2003资源工具包中的cmd工具(我认为在Windows Vista中是默认的)。

Windows Server 2003 Resource Kit Tools

当我部署应用程序时,我使用cmd line和PowerShell来自动执行某些操作。

答案 8 :(得分:0)

如果您计划利用Velocity(来自MS的分布式缓存解决方案),您将需要学习PowerShell,因为这是配置它的唯一方法。

以一致的方式配置IIS是PowerShell的另一个优势。