【问题标题】:Upgrading DOS Batch files for Windows为 Windows 升级 DOS 批处理文件
【发布时间】:2010-09-13 21:07:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: windows automation batch-file dos


    【解决方案1】:

    对于 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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        试试 Python。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

            • 其实它不会编译,它只是将 AutoIt 文件附加到一个 .exe 中,类似于一些压缩程序。
            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

                这里有一个用于 Powershell 的 IDE:

                PowerGUI

                【讨论】:

                  【解决方案9】:

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

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

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

                  【讨论】:

                    【解决方案10】:

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

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

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2012-01-10
                      • 1970-01-01
                      • 2014-11-09
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-01-22
                      相关资源
                      最近更新 更多