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"); 
相關問題