升级DOS批处理文件以适用于Windows

6

有人最近有编写在Windows平台下的自动化DOS批处理任务的需求吗?

我需要做一些自动化操作,但不想花时间在记事本里编写一大堆.BAT文件,是否有更好的方法来自动化这些任务:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发Windows应用程序。

我在思考是否有一种IDE,它拥有编辑器中所有DOS命令,并具有正确的参数语法检查。是否有这样的工具存在,或者我应该使用其他方法来解决这个问题而不是使用.BAT文件?

10个回答

6

对于简单的Windows自动化需求,除了BAT文件之外,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

4

尝试使用Python。


4

当然是PowerShell了。这是微软的新型shell,具有许多有趣的可能性和强大的可扩展性。


2

2

我建议在Windows脚本语言中使用Python而不是Ruby。Python的Windows支持比Ruby更成熟。


2

我使用AutoIt进行此操作,因为PowerShell并非所有机器都默认安装。AutoIt提供了一个简单的语言和许多可重复使用的默认代码。AutoIt可以编译为.exe文件。

我不确定“在特定条件下移动文件”的含义,但我曾经编写了Robocopy Controller脚本(使用AutoIt),通过该脚本,您可以设置一个复制脚本,然后传递给Robocopy.exe(强大的文件复制程序,可以从Microsoft下载,并默认包含在Windows Vista中以替代xcopy)。也许我的这个免费脚本能够帮到你。


实际上它并不编译,只是将AutoIt文件附加到.exe文件中,类似于一些压缩程序的做法。 - Brad Gilbert

1

我个人使用Python或PowerShell来完成这种任务。


1
这里有一个 Powershell 的集成开发环境(IDE):

PowerGUI


0

vbscript/WSH实际上是微软希望您使用的 - 不幸的是,我写过一些这样的脚本,它并不愉快 -

我完全同意Mikael的观点 - 如果您知道哪些系统将运行脚本,并且可以在它们上安装解释器,请选择像Python或Ruby这样的脚本语言

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


VBScript和PowerShell最多也只能算是不太令人愉快。随着微软将一切“云化”(将所有东西都连接到Azure)的倡议,使用“PowerAutomate”、“PowerShell”和“PowerAzure”的目标不断变化。在2022年,我选择使用Python进行任何类型的操作系统自动化。如果正确使用,Python生态系统在很大程度上是跨平台的,并且将经受住时间的考验,即使在微软不断变化的目标下也是如此。 - Rich Lysakowski PhD

0

虽然这不完全是你要找的,但我会选择Perl。虽然缺少GUI,但Perl可以让您快速完成任务,并且它的“粘合”功能将有助于您未来可能遇到的任务。此外,如果有一天您需要在另一个操作系统(而不是Windows)下执行类似的操作,PowerShell可能不可用,您对Perl的了解将会派上用场。

除此之外 - 在Windows下,Perl最接近的兄弟肯定是PowerShell。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接