【问题标题】:coming from bash, what windows scripting language to learn?来自bash,要学什么windows脚本语言?
【发布时间】:2010-11-05 00:47:25
【问题描述】:
为了工作,我在 linux 上呆了很长一段时间后才转向 windows。我想在 Windows 中获得一些用于管理任务的脚本技能。我对 bash 非常熟悉,但是 bash 的“库/工具”在 Windows 方面缺少很多。我看到 vbscript、wsh、powershell、cmd、jscript 等,想知道要学什么,或者什么组合。我也在学习 .net,所以如果它对此有所帮助可能会很好,但这不是必需的。
【问题讨论】:
标签:
.net
windows
bash
powershell
scripting
【解决方案1】:
VBScript、batch 和 Powershell 是我能想到的大的。此外,了解 WMI 的工作原理以及如何从 VBScript/Powershell 调用它。
【解决方案2】:
如果您正在学习 .NET,Powershell 是唯一的选择。 VBScript 已经存在了很长时间,因此可能有更多的 VBScript 示例和示例。但 Powershell 是微软未来专注于编写脚本的地方。它包含在 WS2008 (R2) 中,它将在 Win 7 中,并且可以添加到 Vista 或 WS2003 或 WS2008 中。 Powershell 具有战略意义。我发现它比 VBScript 强大得多。
围绕 Powershell 的社区也在发展壮大。仅举一个例子:如果您访问 powershell.com,您可以注册以电子邮件形式发送的“每日 powershell 提示”。
至于 .NET 的交集——Powershell 可以加载 .NET 程序集并调用它们,所以这两个东西将是非常互补的。
【解决方案3】:
Powershell,如果您要管理 2008 或更高版本的环境,毫无疑问。我经常参加 Microsoft 会议,他们将所有的芯片都投入到 Powershell 中。
【解决方案5】:
我将支持 PowerShell 建议。 PowerShell 团队的开发人员都是 Unix 的老手,PowerShell 中有许多类似 Unix 的功能。
像 Cygwin 这样的东西可以让你直接使用 bash,但出于几个原因,我不推荐它。首先,如果您在 Windows 环境中,PowerShell 对于没有您的 bash 经验的其他人来说会更容易维护。其次,在您可以轻松访问 WMI 对象等方法的环境中,Windows 管理将变得更加容易。
PowerShell 具有传统 Unix shell 的许多优点,但 PowerShell 有一个巨大的优势:当您将命令连接在一起时,您可以调用对象上的方法,而不是解析文本。每个命令都返回一个对象。见Comparing the Unix and PowerShell pipelines。
【解决方案6】:
我经常使用 PowerShell,它是一种非常简单且功能强大的 scipting 语言,但它不支持 windows 2000!它迫使我在 LAN 中的每台计算机上安装 powershell 运行时。
至于 IronRuby,我推荐 BOO - 漂亮而强大的语言。
【解决方案7】:
我自己已经切换到 Linux 几年了,但我最近在 Windows 中使用 Perl 完成了一些项目,我怎么推荐它都不为过。如果您实际上要编写脚本而不是单个命令,那么绝对值得考虑。查看草莓 Perl。你甚至可以找到一个在草莓 perl 下运行的像样的 Perl shell,在这种情况下,你也可以将它用于单命令的东西。查看http://perldoc.perl.org/perlfaq3.html#Is-there-a-Perl-shell?
不要认为 Perl 不适合编写 Windows 脚本。在我最近的项目中,我使用 Win32::OLE 在 Perl 中使用 Outlook 和 Excel 编写了脚本,它的工作方式非常棒!