如何创建一个生成XML并随后运行DOS命令的C / C ++程序?

我需要提出一个生成xml文件的程序,如下所示:

        1.890 1.800        

使用节点mp中的值:askmp:bid随机生成但在两个预定义值(1.65和1.99)之间。

在程序的同一目录中生成xml之后,程序应在cmd命令行中运行一条命令,该命令指出:

 cachetool.bat -i cacheBody.xml -u REALTIME 

其中cachetool.bat是一个已经完成的bash脚本,无法更改,也位于程序的同一目录中,其中cacheBody.xml是以前生成的xml。

这里的诀窍是,这应该反复运行,每次都用新值覆盖xml文件,然后再次运行命令,用新值调用xml。

应该有一种方法可以轻松地中断循环,但除此之外,这应该无限期地运行。

注意:使用c或c ++没有严格的规则,如果在这些语言中不可行或者有其他方法可以轻松实现,请随时提出建议。 我最初的提议是使用这些语言,因为这些是我用来处理的两种语言。

我正在学习如何使用javascript进行Windows本地脚本编写,所以这里是javascript的解决方案。

看起来你并不真的需要动态生成XML,而是XML结构是静态的,只有几个数据字段是动态的。 考虑到这一点,我使用模板文件解决了搜索和替换问题。

模板文件( template.xml )包含xml内容,其中包含一些要搜索和替换的变量。 格式变量格式为$RANDOM_X_Y$ ,其中XY是随机数的下限和上限。 为了帮助这个例子,我在模板文件中略微区别地生成了询价和出价:

         1.$RANDOM_65_99$0 1.$RANDOM_650_990$        

javascript文件名为replace.js 。 所有版本的Windows都应该能够本机执行它而无需安装任何额外的组件。

 if( WScript.Arguments.Count() != 2 || WScript.Arguments.Item(0) == WScript.Arguments.Item(1) ) { WScript.Echo("Usage: replace.js  

现在无限期地运行脚本,只需创建一个名为run.bat或其他的批处理文件,让它在循环中运行javascript和批处理文件。 CTRLC将退出脚本。

 @echo off echo Starting. Press CTRL-C to exit. :loop replace.js template.xml cacheBody.xml cachetool.bat -i cacheBody.xml -u REALTIME goto loop 

好吧,要创建随机值,您可以使用rand()函数,只需将其缩放,使其在您想要的两个值之间。

要调用命令行,请尝试system("cachetool.bat -i cacheBody.xml -u REALTIME");

对于xml,除了数字之外它们都是相同的,你可以只对它进行硬编码。 如果没有,您将需要一个xml库。