在exe中启动的批处理文件不起作用

时间:2011-10-26 11:04:05

标签: c++ sql-server batch-file

好的,所以我有一个可执行文件启动我的批处理文件,然后批处理文件应该为我的SQL服务器创建一个ODBC数据源。如果我自己运行批处理文件,它运行完美并创建数据源,但是当我通过我的exe运行它运行时,不会返回错误但不会创建数据源。

我的整个exe代码是

#include <windows.h>
#include <iostream>
#include <dos.h>
#include <conio.h>

using namespace std;


int main ( int argc, char *argv[] )
{

cout << system("find2.bat");
system("PAUSE");
return 0;
 }

我的批处理命令是

ODBCCONF.exe CONFIGSYSDSN "SQL Server" "DSN=test_DSN | Description=test Data Source |      SERVER=(local) | Trusted_Connection=Yes" 

我还试图从批处理文件输出任何错误,但它只是创建了一个空白文本文件,所以我猜没有错误。 那么有没有人有任何想法可能导致这个?

2 个答案:

答案 0 :(得分:2)

您确定批处理文件正在运行吗?既然你没有建立一条绝对的路径,我猜它就没有找到。

答案 1 :(得分:0)

您需要根据此修改呼叫:

system("cmd /c C:\\path\\to\\find2.bat");