Visión general
La función system () en el archivo de encabezado stdlib.h (cstdlib) se puede usar para llamar comandos por lotes, ejecutar archivos por lotes y ejecutar programas ejecutables . Su prototipo de función es int system(char *command)
:;
Demostración del programa
Archivo 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;
}
Los resultados de la operación son:
HELLO WORLD WITH COMMAND
HELLO WORLD IN CMD
HELLO WORLD IN EXE
descripción
Línea1 ejecuta el comando por lotes;
línea2 ejecuta el archivo por lotes.
Line3 ejecuta el archivo exe.
注意:此时HelloWorld.exe与HelloWorld.exe必须位于Test.cpp同目录下。
Comandos de procesamiento por lotes
Cuando use el system()
comando de llamada por lotes, simplemente use el comando + parámetro directamente .
Dos archivos .bat (.cmd)
Cuando utilice system()
un archivo por lotes, también debe prestar atención a la ruta del archivo por lotes. Si no desea agregar la ruta del archivo, asegúrese de colocarlo en system()
el directorio donde se encuentra la llamada a la función . De lo contrario, se debe agregar la ruta del archivo, que solo puede ser una ruta absoluta, no una ruta relativa .
Además, la ruta del archivo debe prestar atención al formato; por ejemplo, para un archivo con una ruta
C:\Users\Administrator\Desktop\HelloWorld.exe
,
el método de llamada debe ser:
system("C:\\Users\\Administrator\\Desktop\\HelloWorld.exe");
el símbolo "\" debe escaparse, la diferencia entre barra diagonal / y barra invertida \
Si está escrito como
system("C:\Users\Administrator\Desktop\HelloWorld.exe");
Al editar, aparecerá un mensaje de la siguiente manera: se dará una advertencia
al compilar :
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”: 不可识别的字符转义序列
Se mostrará el siguiente mensaje durante la ejecución :
'C:UsersAdministratorDesktopHelloWorld.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
Otro posible método de llamada es el siguiente ( "/" no necesita escaparse ):
system("C:/Users/Administrator/Desktop/HelloWorld.exe");
Archivo Three.exe
Las precauciones son las mismas que las del archivo .bat (.cmd).