c++ 给同一个cmd传输多次命令
时间: 2023-08-01 10:12:17 浏览: 129
c++通过CMD连续打开文件
在C++中,可以使用`system`函数来执行系统命令,也可以使用`CreateProcess`函数来创建一个新的进程并执行系统命令。以下是使用`system`函数来给同一个cmd传输多次命令的示例代码:
```c++
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
// 命令列表
const char* cmds[] = {"cd C:\\Users", "dir"};
// 执行命令
for (int i = 0; i < 2; i++) {
system(cmds[i]);
}
return 0;
}
```
在这个代码中,我们使用一个字符串数组`cmds`来存储要执行的命令。然后使用一个循环来遍历这个数组,并使用`system`函数来执行每个命令。
注意,在使用`system`函数执行命令时,要注意命令中的反斜杠`\`需要使用两个来转义,否则会被解释为转义字符。因此,我们在这里使用`C:\\Users`来表示`C:\Users`。
如果你想使用`CreateProcess`函数来执行命令,可以参考以下代码:
```c++
#include <iostream>
#include <windows.h>
using namespace std;
int main() {
// 命令列表
const char* cmds[] = {"cmd.exe /c cd C:\\Users", "cmd.exe /c dir"};
// 执行命令
for (int i = 0; i < 2; i++) {
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
// 创建进程
if (!CreateProcess(NULL, (LPSTR)cmds[i], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
cerr << "CreateProcess failed" << endl;
return 1;
}
// 等待进程结束
WaitForSingleObject(pi.hProcess, INFINITE);
// 关闭句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
return 0;
}
```
在这个代码中,我们使用一个字符串数组`cmds`来存储要执行的命令。然后使用一个循环来遍历这个数组,并使用`CreateProcess`函数来创建一个新的进程并执行每个命令。在创建进程时,我们使用`cmd.exe /c`来告诉系统要执行的是一个命令行命令。然后使用`WaitForSingleObject`函数来等待进程结束,最后关闭进程和线程句柄。
阅读全文