C++ 呼叫批處理命令或者.bat(.cmd)檔案或者.exe檔案
阿新 • • 發佈:2021-02-06
總述
標頭檔案stdlib.h(cstdlib)中的system()函式可以用來呼叫批處理命令和執行批處理檔案以及執行可執行程式,它的函式原型為:int system(char *command)
;
程式演示
檔案Test.cpp
#include <iostream>
#include <cstdlib>
int main()
{
system("ECHO HELLO WORLD WITH COMMAND"); // line 1
system("HelloWorld.cmd"); // line 2
system("HelloWorld.exe"); // line 3
return 0;
}
執行結果為:
HELLO WORLD WITH COMMAND
HELLO WORLD IN CMD
HELLO WORLD IN EXE
描述
line1執行批處理命令;
line2執行批處理檔案。
line3執行exe檔案。
注意:此時HelloWorld.exe與HelloWorld.exe必須位於Test.cpp同目錄下。
一 批處理命令
使用system()
呼叫批處理命令時,直接使用命令+引數即可。
二 .bat(.cmd)檔案
使用system()
呼叫批處理檔案,一樣要注意批處理檔案的路徑。如果不想加上檔案的路徑,一定要將其放在在system()
函式呼叫所在檔案的目錄下。否則,必須加上檔案的路徑,這裡只能是絕對路徑,相對路徑不可。
另外,檔案路徑一定要注意格式;例如對於帶路徑檔案
C:\Users\Administrator\Desktop\HelloWorld.exe
,
其呼叫方式必須為:
system("C:\\Users\\Administrator\\Desktop\\HelloWorld.exe");
需要對符號"\"進行轉義,
如果寫成
system("C:\Users\Administrator\Desktop\HelloWorld.exe");
編輯時會有提示如下:
編譯時會給出警告:
1>C:\Users\Administrator\Desktop\Project1\Project1\main.cpp(10,9): warning C4129: “A”: 不可識別的字元轉義序列
1>C:\Users\Administrator\Desktop\Project1\Project1\main.cpp(10,9): warning C4129: “D”: 不可識別的字元轉義序列
1>C:\Users\Administrator\Desktop\Project1\Project1\main.cpp(10,9): warning C4129: “H”: 不可識別的字元轉義序列
執行時會如下提示:
'C:UsersAdministratorDesktopHelloWorld.exe' 不是內部或外部命令,也不是可執行的程式或批處理檔案。
另外一種可行的呼叫方式如下("/"不需要轉義):
system("C:/Users/Administrator/Desktop/HelloWorld.exe");
三 .exe檔案
注意事項同 .bat(.cmd)檔案。