有人最近有编写在Windows平台下的自动化DOS批处理任务的需求吗?
我需要做一些自动化操作,但不想花时间在记事本里编写一大堆.BAT文件,是否有更好的方法来自动化这些任务:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发Windows应用程序。
我在思考是否有一种IDE,它拥有编辑器中所有DOS命令,并具有正确的参数语法检查。是否有这样的工具存在,或者我应该使用其他方法来解决这个问题而不是使用.BAT文件?
有人最近有编写在Windows平台下的自动化DOS批处理任务的需求吗?
我需要做一些自动化操作,但不想花时间在记事本里编写一大堆.BAT文件,是否有更好的方法来自动化这些任务:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发Windows应用程序。
我在思考是否有一种IDE,它拥有编辑器中所有DOS命令,并具有正确的参数语法检查。是否有这样的工具存在,或者我应该使用其他方法来解决这个问题而不是使用.BAT文件?
对于简单的Windows自动化需求,除了BAT文件之外,VBScript和Powershell可能值得一试。如果你不知道从何开始,我建议先从VBScript+Windows任务计划程序入手。使用VBS复制文件可以非常简单:
Dim objFSO
Set objFSO = CreateObject ("Scripting.FileSystemObject")
If objFSO.FileExists("C:\source\your_file.txt") Then
objFSO.CopyFile "C:\source\your_file.txt", "C:\destination\your_file.txt"
EndIf
尝试使用Python。
从Windows 98SE开始,系统内置了Windows Script Host,可以使用VBScript自动化任务(例如,参见http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/vbscriptpr_0201.html)。
我建议在Windows脚本语言中使用Python而不是Ruby。Python的Windows支持比Ruby更成熟。
我使用AutoIt进行此操作,因为PowerShell并非所有机器都默认安装。AutoIt提供了一个简单的语言和许多可重复使用的默认代码。AutoIt可以编译为.exe文件。
我不确定“在特定条件下移动文件”的含义,但我曾经编写了Robocopy Controller脚本(使用AutoIt),通过该脚本,您可以设置一个复制脚本,然后传递给Robocopy.exe(强大的文件复制程序,可以从Microsoft下载,并默认包含在Windows Vista中以替代xcopy)。也许我的这个免费脚本能够帮到你。
vbscript/WSH实际上是微软希望您使用的 - 不幸的是,我写过一些这样的脚本,它并不愉快 -
我完全同意Mikael的观点 - 如果您知道哪些系统将运行脚本,并且可以在它们上安装解释器,请选择像Python或Ruby这样的脚本语言
当然,这取决于您需要进行什么类型的自动化 - 如果您正在处理操作系统或Active Directory设置,请使用WSH - 但对于普通的文件清理,使用Python或Ruby即可
虽然这不完全是你要找的,但我会选择Perl。虽然缺少GUI,但Perl可以让您快速完成任务,并且它的“粘合”功能将有助于您未来可能遇到的任务。此外,如果有一天您需要在另一个操作系统(而不是Windows)下执行类似的操作,PowerShell可能不可用,您对Perl的了解将会派上用场。
除此之外 - 在Windows下,Perl最接近的兄弟肯定是PowerShell。