Tag: 批处理文件

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

我需要提出一个生成xml文件的程序,如下所示: 1.890 1.800 使用节点mp中的值:ask和mp:bid随机生成但在两个预定义值(1.65和1.99)之间。 在程序的同一目录中生成xml之后,程序应在cmd命令行中运行一条命令,该命令指出: cachetool.bat -i cacheBody.xml -u REALTIME 其中cachetool.bat是一个已经完成的bash脚本,无法更改,也位于程序的同一目录中,其中cacheBody.xml是以前生成的xml。 这里的诀窍是,这应该反复运行,每次都用新值覆盖xml文件,然后再次运行命令,用新值调用xml。 应该有一种方法可以轻松地中断循环,但除此之外,这应该无限期地运行。 注意:使用c或c ++没有严格的规则,如果在这些语言中不可行或者有其他方法可以轻松实现,请随时提出建议。 我最初的提议是使用这些语言,因为这些是我用来处理的两种语言。

CreateProcess()不会使用CREATE_NEW_CONSOLE标志创建一个新窗口 – C / C ++

我一直在尝试使用Windows API创建一个使用CreateProcess()的进程。 即使在浏览网页后,我也无法出于某种原因创建新的控制台。 我做的研究: 我使用MSDN示例代码作为我应该在函数中使用的参数的基础: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682512%28v=vs.85%29.aspx 我阅读了以下MSDN文章,了解有关如何创建新控制台窗口的信息: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682528%28v=vs.85%29.aspx 我也读了一个类似的SO问题来解决有同样问题的人: CreateProcess不会在Windows 7下创建其他控制台窗口? 结果: 我已经编写了我将在下面发布的代码,其中包含创建新控制台所需的所有要求,但它没有按预期运行。 我花了很长时间试图自己找到答案,但上面的文章是我通过谷歌找到的唯一相关的。 会发生什么是创建过程,但它在我的C程序控制台中。 我希望能够在没有它的情况下创建程序的程序控制台。 还有其他差异。 如果我在do-while循环中打印了很多字符而没有Sleep()来减慢它的速度,则TerminateProcess()将失败并且拒绝访问,当我按下转义键时程序将崩溃。 这也是不希望的行为。 这是我现在的C程序: #include #include #include #define WIN32_LEAN_AND_MEAN #include #include #define IS_PRESSED( vk ) ( GetAsyncKeyState( vk ) & 0x8000 ) typedef struct process { PROCESS_INFORMATION p_info; STARTUPINFO s_info; } process; void win_error( char * message, int is_exit […]

makefile与批处理文件基本相同吗?

我知道批处理文件的所有内容并且之前已经完成,但我不清楚makefile是什么。 它看起来像一个批处理文件。 有什么相似之处和差异?

为什么我不能在Windows 7中测试返回码?

我有一个非常复杂的程序失败了,我已经将它简化为带有批处理文件和C程序的测试集。 我的C程序使用ExitProcess将错误级别传递回批处理文件。 有时在Windows 7(Microsoft Windows [Version 6.1.7600])上,错误级别未正确解释。 我认为这应该永远运行。 在Windows XP上,它似乎永远运行。 在两台不同的双核Windows 7机器(一台64位,一台32位)上,它会在几分钟内发生故障。 我无法想象我做错了什么,但是如果在Windows 7上有一些关于ExitProcess的搞笑,我想我会问。 这里有什么我非法做过的吗? cmd.exe的批处理文件test.bat: @ECHO OFF SET I=0 :pass SET /AI=I+1 Title %I% start/wait level250 if errorlevel 251 goto fail if errorlevel 250 goto pass :fail 程序级别250.c: #include “windows.h” static volatile int Terminate = 0; static unsigned __stdcall TestThread(void * unused) { Terminate […]