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

问题描述 投票:4回答:9

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

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

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

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

windows powershell
9个回答
12
投票

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

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


5
投票

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

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

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


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
投票

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

有时,剥离所有向导并熟悉事物在较低级别的工作方式是非常令人耳目一新的。


2
投票

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

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


2
投票

如果你...

a)处理文件

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

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

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

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


2
投票

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

  • 如果您只关注开发本身,那么PowerShell可能没什么用处。
  • 如果您还需要处理部署或用户支持等事情,它可能会对您有所帮助。

快速浏览一下this question,了解PowerShell的用途。


0
投票

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

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


0
投票

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

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

Windows Server 2003 Resource Kit Tools

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

© www.soinside.com 2019 - 2024. All rights reserved.