【发布时间】:2009-09-03 11:41:10
【问题描述】:
我有一个应用程序和可执行文件。我希望我的应用程序运行我的可执行文件。
可执行文件在一个文件夹中,比如说在“c:\sample”中。
在这个目录中有一个调用我的exe的批处理文件。喜欢:
start a1.exe
start a2.exe
start a3.exe
我们将其命名为 startAll.bat
并假设每个 exe 都有一个类似 a1.dat a2.dat ...的数据,并且这些数据文件在这个 exe 附近。
我想通过我的应用程序调用这个批处理文件。
system("c:\\\\sample\\\\startAll.bat");
当我这样称呼它时,命令找不到这些 exe。
如果我将目录名称添加到批处理文件中,则无法找到当时的数据。 我认为这是因为工作目录。
start c:\sample\a3.exe
如何在调用此批处理文件之前更改工作目录?
或者你还有什么建议吗?
【问题讨论】:
-
system("C:\\sample\\...\\foo.bat");应该可以工作,所以这让我相信还有其他问题。您确定包含所有必要的库等吗?
-
它可以工作,但批处理文件不会调用可执行文件,因为它找不到..
-
@ufukgun:正如彼得指出的那样,如果您的主要可执行文件位于 C 以外的驱动器上:答案会略有不同。我又更新了答案。
-
@RichieHindle:是的,它们在不同的驱动器上......嗯......我认为这就是问题......
标签: c++ batch-file system working-directory