(VS2010 C++) 每次运行程序都执行一个命令?

Posted

技术标签:

【中文标题】(VS2010 C++) 每次运行程序都执行一个命令?【英文标题】:(VS2010 C++) Execute a command every time the program is run? 【发布时间】:2014-11-25 21:51:44 【问题描述】:

我用的IDE是VS2010写C++

每次我编写的程序在 IDE 中运行时,我都想执行命令 cmd C:\utilities\unix\tail.exe -f -n15 $(ProjectDir)Log.txt。 (此命令应该打开一个控制台来跟踪对文件 Log.txt 所做的更改)

有一些方法可以在每次构建程序时运行命令,但我找不到在程序本身运行时运行命令的方法,即使它已经构建。我可以在哪里或如何设置这种东西?

我尝试将$(TargetPath) & C:\utilities\unix\tail.exe -f -n15 $(ProjectDir)Log.txt 放入项目的属性->调试->命令(TargetPath 是调试可执行文件的全名),但 VS 将整个内容作为文件名读取并感到困惑。

【问题讨论】:

我最终将该命令添加为“外部工具”,然后自定义 UI 以在运行按钮旁边包含该命令。我认为这就足够了! 【参考方案1】:

您可以在 vcxproj 文件旁边创建一个文件 run.cmd,例如,该文件将包含:

%1
C:\utilities\unix\tail.exe -f -n15 %2Log.txt

然后在Properties->Debugging->Command 你写:

$(ProjectDir)\run.cmd

Command Arguments 你写:

"$(TargetPath)" "$(ProjectDir)"

我可能拼错了宏,但您明白了:它首先执行您的程序,然后执行您想要的任何内容。

编辑:不幸的是,它仅在您开始时没有调试 (Ctrl+F5) 有效,否则调试器会尝试附加到 run.cmd 并抱怨格式不受支持。

【讨论】:

VS 说文件无法识别,很遗憾。虽然这令人印象深刻,但我认为 VS 只是说“命令”,而它真正的意思是“调试可执行文件” @Clairvoire 啊,是的,因为调试器试图附加到run.cmd(见我的更新)

以上是关于(VS2010 C++) 每次运行程序都执行一个命令?的主要内容,如果未能解决你的问题,请参考以下文章

用vs2015写c++,编译报错项目已过期,怎么回事?

VS2010 C++ MFC写的程序编译可以正常运行,但是我想直接运行,DEBUG里找不到EXE文件

VS2010 C++ MFC写的程序编译可以正常运行,但是我想直接运行,DEBUG里找不到EXE文件

如何在VS2010中运行编译C和C++?

vs2010 C#的命令行程序,怎么清屏?

C++程序在VS2010中可以运行 但是debug里面的可执行文件不能单独运行 而DEVC++则均可以 啥情况 求解答。