有没有人最近对在 Windows 机器上编写自动 DOS 批处理样式任务有任何要求?
我有一些自动化要做,如果有更好的方法来自动化这些任务,我宁愿不坐下来在记事本中写一堆 .BAT 文件:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发 Windows 应用程序。
我正在考虑一个 IDE,它具有对编辑器“可用”的所有 DOS 命令,并具有正确的参数语法检查。那里有这样的东西,还是我应该用 .BAT 文件以外的东西来解决这个问题?
有没有人最近对在 Windows 机器上编写自动 DOS 批处理样式任务有任何要求?
我有一些自动化要做,如果有更好的方法来自动化这些任务,我宁愿不坐下来在记事本中写一堆 .BAT 文件:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发 Windows 应用程序。
我正在考虑一个 IDE,它具有对编辑器“可用”的所有 DOS 命令,并具有正确的参数语法检查。那里有这样的东西,还是我应该用 .BAT 文件以外的东西来解决这个问题?
对于 BAT 文件之外的简单 Windows 自动化,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
绝对是PowerShell。它是 Microsoft 的新外壳,具有许多有趣的可能性和出色的可扩展性。
试试 Python。
Windows 98SE 及更高版本内置了 Windows Script Host,它允许您使用 VBScript 自动执行任务(参见例如http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/vbscriptpr_0201.html)。
我为此使用AutoIt,因为默认情况下 PowerShell 并非在所有机器上都可用。AutoIt 提供了一种简单的语言,其中包含许多可以重复使用的默认代码。AutoIt 可以编译为 .exe。
我不确定“在特定条件下移动文件”是什么,但我曾经编写过Robocopy 控制器脚本(使用 AutoIt),您可以通过该脚本设置一个复制脚本,将其填充到 Robocopy.exe(“强大的文件复制”-a可以从 Microsoft 下载的复制程序,默认情况下包含在 Windows Vista 中以替换 xcopy)。也许我的这个免费脚本可以提供帮助。
这里有一个用于 Powershell 的 IDE:
我会推荐 Python 而不是 Ruby 作为 Windows 脚本语言。Python 的 windows 支持比 Ruby 成熟得多。
我个人使用 Python 或PowerShell 来完成此类任务。
虽然这不是您正在寻找的,但我会选择 Perl。由于缺少 GUI,Perl 可以让您快速完成任务,而且它的“粘合”功能将有助于您将来可能完成的任务。此外,如果有一天您必须在另一个操作系统(不是 Windows)下做类似的事情,PowerShell 可能不可用,而您的 Perl 知识会派上用场。
除此之外——Perl 在 Windows 下最亲近的兄弟绝对是 PowerShell。
vbscript/WSH 实际上是 Microsoft 希望您使用的 - 不幸的是,我已经写了其中一些,但并不令人愉快 -
我完全同意 Mikael - 如果您知道哪些系统将运行脚本并且您可以在它们上安装解释器,请使用 Python 或 Ruby 之类的脚本语言
当然,这取决于您需要执行哪种类型的自动化 - 如果您弄乱了操作系统或 Active Directory 设置,请使用 WSH - 但对于您的平均文件管理,请使用 Python 或 Ruby