有没有人最近要求在Windows机器上编写自动DOS批处理样式任务?
我有一些自动化功能,如果有更好的方法可以自动执行这些任务,我宁可不要坐在记事本中写一堆.BAT文件:主要是在特定日期和时间条件下移动文件,以及在移动文件之前和之后触发Windows应用程序。
我正在思考IDE的所有DOS命令“可用”到编辑器并使用正确的参数语法检查。有没有这样的东西,或者我应该用.BAT文件以外的东西解决这个问题?
答案 0 :(得分:6)
对于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
答案 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:
答案 8 :(得分:0)
vbscript / WSH实际上是微软希望你使用的 - 不幸的是,我已经写了一些这些并且它并不令人愉快 -
我完全同意Mikael - 如果您知道将运行脚本的系统,并且您可以在其上安装解释器,请使用Python或Ruby等脚本语言
当然,这取决于您需要做什么类型的自动化 - 如果您正在使用操作系统或Active Directory设置,请使用WSH - 但对于您的普通文件管理,请使用Python或Ruby
答案 9 :(得分:0)
虽然这不是你想要的,但我会选择Perl。由于缺乏GUI,Perl将允许您快速完成任务,并且它的“粘合”功能将有助于您可能拥有的未来任务。此外,如果有一天你必须在另一个操作系统(不是Windows)下做类似的事情,PowerShell可能不可用,你在Perl中的知识会派上用场。
除此之外 - Perl在Windows下最亲密的兄弟肯定是PowerShell。