概要概要
ヘッダーファイル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()
、コールバッチコマンドを、ちょうど使用コマンド+パラメータを直接。
2つの.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");
Three.exeファイル
注意事項は、.bat(.cmd)ファイルと同じです。