2012-05-30 52 views
7

我有一个问题,我必须从C程序中运行命令提示符命令。下面是我做的使用系统命令从windows下的c程序中更改目录

#include<stdio.h> 
#include<stdlib.h> 


int main(){ 



system("cd \Users"); 
system("Dir"); 

} 

问题是我想cd到用户,然后再执行命令dir其中,按照目前的方案产出,它找不到指定的路径和迪尔在父进程执行目录,即程序源文件所在的位置。

我想要做的实际任务就是想从C程序中的特定目录运行java文件。该java文件位于C:\ Users \ Abdullah \ pro中。我的C程序的父目录是C:\ Users \ Cprog。请告知我如何做到这一点

+0

请看看我的回答如下。告诉我它是否有帮助,或者在查看来自Microsoft的示例后可能会遇到的任何其他问题。附注:是否真的有必要将当前目录也更改为该目录? –

+0

谢谢你的回答。问题是我需要在特定目录中执行的程序是使用脚本运行的。电子光盘cd到工作目录然后,run.bat --arg1 arg1 --arg2 arg2等。所以我不能启动一个过程来做到这一点,我想:/ – Abdullah

+1

相应地更新我的答案。请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx和当前目录参数。 –

回答

5

system()开始一个新的过程。此新过程将更改当前目录,然后结束。程序进程的当前目录不会改变。 (或_chdir())。

+0

另外,他可以使用一个单一的调用'系统'。像'system(“cd \ Users&dir”)'可能会起作用。 (我认为'&'是需要的字符,在Unix下是';') –

+1

...或者只是'system(“Dir \ Users”);' –

+0

没有任何工作:/或者可能我太笨了。我只想从C程序中的特定目录运行一个java文件。该java文件位于C:\ Users \ Abdullah \ pro中。我的C程序的父目录是C:\ Users \ Cprog。请告诉我如何做到这一点 – Abdullah

0

'cd'不是您尝试执行的独立可执行文件。通常'cd'是shell /命令的内置命令。你不能用'system()'执行'cd',并期​​望在你的程序中使它工作。如果您希望在您的程序中执行目录更改,则必须使用'chdir()'函数(或系统调用)。查阅'chdir()'的手册页。

0

这应该工作:

system("dir Users\\whatEverNextFolder > test.txt");