升级Windows的DOS批处理文件

时间:2008-09-28 20:01:30

标签: windows automation batch-file dos

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

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

我正在思考IDE的所有DOS命令“可用”到编辑器并使用正确的参数语法检查。有没有这样的东西,或者我应该用.BAT文件以外的东西解决这个问题?

10 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

绝对是PowerShell。它是微软的新外壳,具有许多有趣的可能性和极大的可扩展性。

答案 2 :(得分:3)

尝试使用Python。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

我使用AutoIt,因为默认情况下PowerShell并非在所有计算机上都可用。 AutoIt提供了一种简单的语言,可以重复使用大量默认代码。 AutoIt可以编译为.exe。

我不确定“在某种情况下移动文件”是什么,但我曾写过Robocopy Controller script(使用AutoIt),通过它可以设置一个复制脚本,填写传递给Robocopy.exe(“健壮”文件复制“ - 可以从Microsoft下载的复制程序,默认情况下包含在Windows Vista中以替换xcopy。也许我的这个免费剧本可以提供帮助。

答案 5 :(得分:1)

我建议使用Python作为Windows脚本语言。 Python的windows支持比Ruby的更成熟。

答案 6 :(得分:1)

我个人使用Python或PowerShell 对于这种任务。

答案 7 :(得分:1)

这里有一个用于Powershell的IDE:

PowerGUI

答案 8 :(得分:0)

vbscript / WSH实际上是微软希望你使用的 - 不幸的是,我已经写了一些这些并且它并不令人愉快 -

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

当然,这取决于您需要做什么类型的自动化 - 如果您正在使用操作系统或Active Directory设置,请使用WSH - 但对于您的普通文件管理,请使用Python或Ruby

答案 9 :(得分:0)

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

除此之外 - Perl在Windows下最亲密的兄弟肯定是PowerShell。