6

有没有人最近对在 Windows 机器上编写自动 DOS 批处理样式任务有任何要求?

我有一些自动化要做,如果有更好的方法来自动化这些任务,我宁愿不坐下来在记事本中写一堆 .BAT 文件:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发 Windows 应用程序。

我正在考虑一个 IDE,它具有对编辑器“可用”的所有 DOS 命令,并具有正确的参数语法检查。那里有这样的东西,还是我应该用 .BAT 文件以外的东西来解决这个问题?

4

10 回答 10

6

对于 BAT 文件之外的简单 Windows 自动化,VBScriptPowershell可能值得一看。如果您想知道从哪里开始,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
于 2008-09-28T20:07:17.720 回答
4

绝对是PowerShell。它是 Microsoft 的新外壳,具有许多有趣的可能性和出色的可扩展性。

于 2008-09-28T20:19:49.627 回答
3

试试 Python。

于 2008-09-28T20:04:56.900 回答
2

Windows 98SE 及更高版本内置了 Windows Script Host,它允许您使用 VBScript 自动执行任务(参见例如http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/vbscriptpr_0201.html)。

于 2008-09-28T20:06:19.767 回答
2

我为此使用AutoIt,因为默认情况下 PowerShell 并非在所有机器上都可用。AutoIt 提供了一种简单的语言,其中包含许多可以重复使用的默认代码。AutoIt 可以编译为 .exe。

我不确定“在特定条件下移动文件”是什么,但我曾经编写过Robocopy 控制器脚本(使用 AutoIt),您可以通过该脚本设置一个复制脚本,将其填充到 Robocopy.exe(“强大的文件复制”-a可以从 Microsoft 下载的复制程序,默认情况下包含在 Windows Vista 中以替换 xcopy)。也许我的这个免费脚本可以提供帮助。

于 2008-09-29T05:38:47.003 回答
1

这里有一个用于 Powershell 的 IDE:

PowerGUI

于 2008-09-28T20:40:26.767 回答
1

我会推荐 Python 而不是 Ruby 作为 Windows 脚本语言。Python 的 windows 支持比 Ruby 成熟得多。

于 2008-09-28T20:14:43.163 回答
1

我个人使用 Python 或PowerShell 来完成此类任务。

于 2008-09-28T20:21:00.293 回答
0

虽然这不是您正在寻找的,但我会选择 Perl。由于缺少 GUI,Perl 可以让您快速完成任务,而且它的“粘合”功能将有助于您将来可能完成的任务。此外,如果有一天您必须在另一个操作系统(不是 Windows)下做类似的事情,PowerShell 可能不可用,而您的 Perl 知识会派上用场。

除此之外——Perl 在 Windows 下最亲近的兄弟绝对是 PowerShell。

于 2008-09-28T20:46:33.430 回答
0

vbscript/WSH 实际上是 Microsoft 希望您使用的 - 不幸的是,我已经写了其中一些,但并不令人愉快 -

我完全同意 Mikael - 如果您知道哪些系统将运行脚本并且您可以在它们上安装解释器,请使用 Python 或 Ruby 之类的脚本语言

当然,这取决于您需要执行哪种类型的自动化 - 如果您弄乱了操作系统或 Active Directory 设置,请使用 WSH - 但对于您的平均文件管理,请使用 Python 或 Ruby

于 2008-09-28T20:10:53.470 回答