我正在争论我是否应该学习PowerShell,还是坚持使用Cygwin/Perl脚本/Unix shell脚本等等。
PowerShell的好处是,没有Cygwin的队友可以更容易地使用脚本;然而,我不知道我是否真的会写那么多通用脚本,或者人们是否会使用它们。
Unix脚本功能如此强大,PowerShell是否足以让我们切换到它呢?
以下是我在PowerShell中寻找的一些具体内容(或等效内容):
grep
排序
uniq
Perl (PowerShell与Perl的能力有多接近?)
AWK
sed
File(提供文件信息的命令)
等。
当您将PowerShell与Cygwin/Perl/Shell组合进行比较时,请注意PowerShell仅表示该组合的“Shell”部分。
然而,您可以从PowerShell调用任何命令,就像从cmd.exe或Cygwin中调用一样。它没有重新实现指定的函数,当然也不能与Perl相比。
它“只是”一个外壳,但它使编程变得更容易,为。net世界提供了一个舒适的接口。
还要记住,PowerShell需要Windows XP、Windows Server 2003或更高版本,这可能会造成问题,具体取决于您的IT基础设施。
更新:
我不知道我的回答会引发什么样的哲学辩论。
我在这个问题的背景下发布了我的答案:将PowerShell与Cygwin、Perl和Bash进行比较。
PowerShell是一个shell,因为它在内置命令、命令行、用户函数和外部命令(.exe、.bat、.cmd)之间没有语法上的区别。只有在调用中添加名称空间或对象才能调用。net方法。
它的可编程性来源于。net框架,而不是任何特定于PowerShell“语言”的东西。
我想说,一旦Bugzilla或MediaWiki被实现为运行在web服务器上的PowerShell脚本,我相信PowerShell就是一种“脚本语言”。
在那之前,享受比较吧。