【问题标题】:C#.NET console app (.exe) versus VBScript (.vbs) for Scheduled Tasks用于计划任务的 C#.NET 控制台应用程序 (.exe) 与 VBScript (.vbs)
【发布时间】:2011-04-19 15:04:13
【问题描述】:

我有以下 VBScript:

Dim strFile, strXPath, strNewText, xmlDoc, xmlNodes, xmlNode

strFile = "C:\folder\cats.xml"
strXPath = "/list/cat/@LAST_BATH"
strNewText = Now

Set xmlDoc =  CreateObject("Microsoft.XMLDOM")

xmlDoc.Async = "False"
xmlDoc.Load(strFile)

Set xmlNodes = xmlDoc.selectNodes(strXPath)

For Each xmlNode in xmlNodes
  xmlNode.Text = strNewText
Next

xmlDoc.Save strFile

XML 文件:

<?xml version="1.0" ?>
<list>
  <cat NAME="Monkey" LAST_BATH="9/30/2010  3:02:02 PM" />
</list>

上面的脚本只有1KB。我还有一个小的 C#.NET 控制台应用程序 (.exe),它的功能完全相同,但它是 11KB,而 App.config 是 1KB(配置文件,因此路径和字段名称不是硬编码的)。

我打算做的是创建一个计划任务以在某个时间间隔运行上述过程。

.vbs 和 .exe 哪个更好用?为什么?

内存差异会影响性能吗?我认为 .exe 更快,因为它是预编译的,但由于 .vbs 非常小,我猜它的速度几乎是你想要的。

(我知道这是一个有争议的问题,但我只是好奇。感谢您的耐心。)

【问题讨论】:

    标签: scripting vbscript scheduled-tasks


    【解决方案1】:

    性能不会有任何问题,因为这是一项小任务。对于该任务,我更喜欢VBS。源代码易于更改,无需编译/链接。您可以直接在您正在工作的目录上编辑代码,这与编译后的代码不同,您需要访问项目目录打开 VS 并在那里进行编辑。

    【讨论】:

      【解决方案2】:

      我绝对喜欢在小型工具和应用程序中尽可能使用脚本语言 - 这个例子是一个完美的候选:

      • 不太复杂
      • 作为脚本,您无需重新编译即可轻松修改和调整脚本
      • 无需查找源代码即可轻松查看脚本的作用

      当然,脚本语言(可能)总是比编译代码慢,但通常我发现这不是一个真正的问题。

      如果您在 vbs 中编写了很多这样的小工具,那么您可能需要考虑切换到功能更强大的脚本语言 - 作为 .Net 开发人员,我强烈推荐 Iron Python(即使对于相对较大的 / GUI 实用程序)

      【讨论】:

      • +1,谢谢克拉根。 Omg Iron Python 看起来棒极了! 实际上,我很想使用一种“更好”的脚本语言,并且我计划很快学习 Windows PowerShell。但是,我目前使用 VBScript(或 .NET 2.0 .exes)的原因是因为我的客户端没有最新的环境,即使让他们升级 .NET 框架也很重要。所以现在,我为最小公分母编程。
      • 我想知道,是否有用于 VBScript 编程的 IDE/调试器?现在我瞎写,不得不用很多MsgBox
      • @JonB - Visual Studio 运行良好,并且具有出色的 VBScript 调试器。我知道的最简单的方法是用cscript /D 启动脚本,并在文件的第一行放置Stop 语句(相当于JavaScript 中的debugger;)。
      • @JonB - 如果 IronPython 退出了,那么您也可以考虑使用 JScript(来自网络背景,我更喜欢 JavaScript 而不是 VBScript)
      • @JonB - 这也是脚本调试的另一个很好的链接/参考 - wilsonmar.com/1wsh.htm
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 2013-01-13
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多