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. 批處理文件「」
- 2. 清理批處理文件
- 3. 如何從批處理文件中調用批處理文件?
- 4. 批處理文件:另存爲批處理文件(.cmd)
- 5. 將批處理文件包含在批處理文件中
- 6. 從另一個批處理文件運行批處理文件
- 7. 從C#執行批處理文件#
- 8. 在C#中執行批處理文件#
- 9. 在c#中執行批處理文件
- 10. 處理在批處理文件
- 11. 批處理腳本來處理文件
- 12. C#System.Diagnostics.Process如何處理多個批處理文件
- 13. 調用C#程序後的批處理文件錯誤處理
- 14. 從批處理文件
- 15. 批處理文件VBScript中
- 16. 批處理文件執行
- 17. 批處理文件變量
- 18. 運行批處理文件
- 19. 使用批處理文件
- 20. 批處理文件工具
- 21. 批處理文件7
- 22. 使用批處理文件
- 23. 在批處理文件
- 24. 創建批處理文件
- 25. 批處理文件$:和〜
- 26. 在批處理文件
- 27. MOVE批量處理文件
- 28. 與批處理文件
- 29. 批處理文件完全
- 30. IF在批處理文件
您可以發佈其推出的批處理文件的代碼,:本身「不工作」和
start
-的
exec*
功能不加載外殼請 ? –你可以顯示批處理文件的代碼嗎? –