批处理文件在什么情况下是正确的方法?

时间:2016-11-23 08:17:18

标签: python batch-file

我使用适度混乱的批处理文件继承了各种任务。我打算将它们重写为Python脚本,如果只是这样我可以彻底看到他们正在做什么,我的继任者也是如此。

老实说,我不明白为什么有人会有一个令人吃惊的简单(五行以下,按顺序执行a,b,c,d,e)批处理文件:正确的逻辑值得采用更现代的方法,当然?但我错过了什么吗?仍然使用这种方法有真正的优势吗?如果是这样,它是什么?

回应评论澄清:Windows .bat fils,检查某些地方是否存在文件并移动它们,然后根据找到的内容调用其他程序。我想我真正要问的是,仍然为这类事情创建批处理文件是正常的好习惯,还是更常见的是采用不同的方法?

2 个答案:

答案 0 :(得分:2)

我不确定这个问题是否正确,但无论如何......

  1. 自Windows NT(引入cmd.exe之后),可以在每台Windows机器上运行批处理文件(具有非常轻微的保留)。当你必须处理运行windows xp或者2003的旧机器时,这一点特别有用。(仍然)windows机器之间最便携的语言。

  2. 批处理文件非常快。特别是与powershell相比。

  3. 更容易打电话。虽然默认情况下使用wscript.exe调用wsh(输出位于一个繁琐的弹出窗口中),但PowerShell需要一个策略参数,默认情况下,双击不会对powershell脚本有效。

  4. 我认为你不需要python,除非你的目标是多平台脚本(即mac或linux机器)。 Windows附带其他功能强大的语言,如vbscript和javascript(自XP以来)。 C#,Visual Basic和jscript.net(自Vista以来)和powershell(自Windows 7起)。即使您需要多平台脚本,基于.net的语言也非常可观,因为Miscrosoft已经为.ix for unix提供官方支持。虽然最好的选择可能是powershell和c#作为visual basic而jscript.net处于维护模式,虽然jscript选项(jscript和jscript.net)基于javascript,目前这是更流行的语言并投资于它值得。

    顺便说一句,默认情况下,所有随Windows打包的语言都可以优雅地包装到批处理文件中。

答案 1 :(得分:1)

我非常确定如果我在Windoze系统上仍在使用sysadmin,我会用一些东西替换除最简单的BAT文件之外的任何东西! - 否则。因为这种特殊的命令语言几乎完全缺乏你所需要的一切。 (异常处理?阻止结构化代码?程序?解析文本字符串和文件名?)

Python具有很高的可读性,并且包含电池和#34;因此它必须作为Windows脚本语言值得考虑。但是,Powershell可能在与Windows组件的接口方面提供优势。它的设计考虑到了这一点。使用Python,您可以依赖额外的模块,这些模块可能会也可能不会完成您所需要的所有功能,并且可能不如Python及其标准库那样受到良好支持。另一方面,如果它目前已经完成了BAT,它可能不那么复杂!

反对改变的主要论点是“如果它没有破坏,就不要修复它”#34;。因此,如果BAT脚本完成您所需的一切,并且不需要进行任何更改,那么就不要做任何改动。还没。 (稍后需要更改 ,这是考虑废弃BAT脚本并重新开始的时候)。