0
A
回答
0
請問您可以發佈您的bat文件嗎?這可能是notepad.exe的路徑與手動執行它時運行bat文件的位置有關,但是當您從C應用程序調用它時,將從C可執行文件的位置運行它,以便它不再找到NOTEPAD.EXE或者你可能會傳遞到FIEL NOTEPAD.EXE
0
它必須與您的notepad.exe的路徑做,如果你是在Windows上,然後嘗試添加的notepad.exe的路徑環境變量「路徑」,這可能會簡化很多事情。
0
你說你從C程序執行批處理文件。你確定當你開始執行批處理文件時,環境是否正確設置?
如果在執行批處理文件時沒有正確設置PATH環境變量,那麼批處理文件將不會執行。但是從命令行啓動時批處理文件可以正常工作,因爲在這種情況下環境已正確設置。
0
start
是cmd.exe
的內部命令;它本身不是一個程序。要運行start
,您需要運行cmd.exe
並讓cmd.exe
執行start
的事情。
的system()
C函數執行一個shell(在Windows可能cmd.exe
),並傳遞參數給殼 - 和start
「作品」。它需要「內部」 cmd.exe
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void) {
// system "works"
system("start C:\\tmp");
// this don't work
execl("start", "start", "C:\\Windows", (char*)0);
printf("Oops: execl with start failed\n");
// this "works"
execl("C:\\Windows\\System32\\cmd.exe", "start", "/c", "start", "C:\\Windows\\", (char*)0);
printf("Oops: execl with <path>\\cmd.exe failed\n");
return 0;
}
相關問題
- 1. 這是渦輪C++
- 2. 從C批處理文件運行批處理文件#
- 3. C#控制檯調用批處理多個批處理文件
- 4. $(文件)。就緒(函數(){Rails的渦輪鏈路與渦輪鏈接運行此
- 5. 渦輪鏈輪和capistrano
- 6. 批處理文件「」
- 7. 批處理文件
- 8. 批處理文件
- 9. 批處理文件
- 10. 清理批處理文件
- 11. 在c#中執行批處理文件
- 12. 在c中創建批處理文件#
- 13. 在C#中執行批處理文件#
- 14. 執行多個批處理文件c#
- 15. 從C調用批處理文件#
- 16. Visual C#添加批處理文件
- 17. 從C#執行批處理文件#
- 18. 批處理文件不會在批處理文件
- 19. 批處理文件,創建另一個批處理文件
- 20. 批處理文件:另存爲批處理文件(.cmd)
- 21. 將批處理文件包含在批處理文件中
- 22. 如何從批處理文件中調用批處理文件?
- 23. Oracle在批處理文件中導入批處理文件
- 24. 從另一個批處理文件運行批處理文件
- 25. 如何從批處理文件調用批處理文件
- 26. 從另一個批處理文件更新批處理文件
- 27. 將批處理文件寫入批處理文件
- 28. 在批處理文件中運行幾個批處理文件
- 29. 批處理文件,使另一個批處理文件執行
- 30. 批處理文件,寫入另一個批處理文件
您可以發佈其推出的批處理文件的代碼,:本身「不工作」和
start
-的
exec*
功能不加載外殼請 ? –你可以顯示批處理文件的代碼嗎? –