Yaa*_*lis 27 .net powershell scripting command-line
Windows PowerShell去年问世,得到了许多.net博客的好评(Hanselman浮现在脑海中).它似乎被吹捧为一个伟大的新工具,以某种方式使您在命令行上所做的一切变得更容易,并与.Net集成.但是,我读的越多,它似乎就越成为一个对IT专业人员来说很棒的工具,而对开发人员来说并没有多大用处.
你在开发工作中使用PowerShell吗?如果是这样,怎么样?值得学习吗?
注意:到目前为止看到响应后,我认为结论PowerShell对.Net开发人员非常有用是有效的.但是,下面,我可以为标签没有一个答案的答案(所以请原谅我不能这样做).我正在投票给我发现有帮助的每个答案.
bru*_*atk 13
这绝对值得学习.你有转换文字吗?你有没有操纵过XML?你有没有自动化什么?简单的例子.有人给你一个逗号分隔文件,你需要从中提取一些字段以导入到其他工具/数据库或为你的程序创建一些列表.
如果csv在文件的第一行中有字段名称,则可以在Powershell中执行以下操作:
$Data = import-csv "something.csv"
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用字段名称来引用您的数据.如果您有一个名为SSN的字段,那么您可以说$ Data [n] .SSN.您还可以将import-csv命令传递给处理数据的内容,包括将其作为XML/html或任何您想要的内容导出,只需几个命令即可.Powershell充满了这样的东西.
它是一个工具,可以让您轻松访问工作站和服务器上的大量内容,包括完整的.NET库.这是一种不针对某类人的工具.也许只是管理员类型已经很快意识到它是多么有用.我每天都使用它.
为了真正回答问题,我用它来自动化我每天做的事情.我试图使它成为我的单一脚本语言,取代我在perl,python,vbscript,.bat/.cmd中所做的事情,以及我将创建的一个小实用程序/转换程序.
Ste*_*ski 12
我是一名管理员,只是从"开发"世界开始,但我发现PowerShell在很多方面对开发人员非常有用.
你可以讨厌Powershell,但它对你来说仍然非常有用.我将它用于小而重要的单行类型的东西或非常小的脚本.它实际上无法与C#进行比较,因此只要有任何复杂性或重要的潜在重用,我就会切换到C#.另外,重要的是,Powershell非常时髦,我想每次都从头开始重新创建解决方案,否则我会忘记怪癖,其中有很多.我听过其他人也这么说!
它真正有用的例子:
临时文本处理.有时人们会给我一个大数据或SQL文件,他们希望它被操纵成一种不同的形式,有时候是以非常复杂的方式.仅这一点就为我节省了不可思议的时间.它通常涉及许多特殊的单行和中间文件.现在人们知道我可以做到这一点,他们倾向于把这些项目交给我.或者在某些情况下,他们如此惊叹,以至于他们自己学习Powershell.
当我在一个客户网站并迫切需要自动化某些东西时,它是我能够和/或被允许接触的唯一工具.
登录网站并导航到我感兴趣或正在处理的任何页面的小脚本.我从不手动登录我正在开发的网站.琐碎,但这是一个不那么烦人的重复脑死亡任务,我需要担心.
单行复制文件和项目,搜索和替换.
如果涉及任何异常复杂情况,可以使用很少的脚本来构建.
等等.你的系统肯定会有一些小问题,你需要停止/启动服务来修复别的东西,或者其他什么.
我刚刚完成了一个项目的第1版,该项目托管了PowerShell运行时以在远程系统上执行任务.我完全不同意PowerShell不是开发人员的工具.
作为基于.NET的产品,它直接类似于.NET编程.整个.NET程序可以在PS中进行原型设计,以及用于测试方法功能的少量oneliner等.PS的语言架构师专门设计PS的语法接近C#,这意味着在编写PS脚本和C#代码时很少有上下文切换(我最近不得不做的事情).你使用PS语言已经基于.NET语言已经很难获得的知识.
作为一种自动化工具,它非常棒.它可以本机访问WMI,ADO,ADSI,.NET,COM,还可以点焊以与其他任何东西配合使用.仅这一点就可以使任何Windows自动化更容易,更强大.对系统的访问量与其他一些语言(VBscript,Python)并行,但语言的易用性和.NET框架的好处意味着某些PS脚本将现有代码(代码重用)捆绑在一起而不是浪费你的时间写另一个文件压缩例程(例如......)
已经有一些项目正在制作构建工具(psake浮现在脑海中),以使开发人员的生活更轻松.像Powershell Community Extensions这样的项目展示了日常开发人员可以实现的强大扩展功能.我同意上面的一些海报,我认为在设置构建环境或使用数据进行开发任务时所做的一切都可以用PS完成,如果不是更快/更容易/更好,但同样如此.
詹姆士