在程序中获取命令通常有以下几种方法:
使用GetCommandLine函数
`PTSTR pCmdLine = GetCommandLine();` 获取命令行字符串。
`int iNumArgs;` 存储命令行的实参数目。
`PWSTR *pstr = CommandLineToArgvW(pCmdLine, &iNumArgs);` 解析命令行并返回参数数组。
遍历解析后的命令行参数,例如:
```cpp
CString str;
for (int i = 0; i < iNumArgs; ++i) {
str = pstr[i];
MessageBox(str);
}
```
使用临时文件
将命令输出重定向到一个临时文件,然后在应用程序中读取这个临时文件,获得外部命令执行结果。例如:
```c
int mysystem(char *cmdstring, char *tmpfile);
char cmd_string[MAX_STR_LEN];
mkstemp(tmpfile);
sprintf(cmd_string, "%s > %s", cmdstring, TmpFILE);
return system(cmd_string);
```
使用man命令
`man`命令用于查看系统中安装的命令的使用手册。例如:
```sh
man ls
```
使用which命令
`which`命令用于查找指定的命令在系统中的路径。例如:
```sh
which ls
```
使用whereis命令
`whereis`命令用于查找指定的命令的二进制文件、源文件和帮助文件。例如:
```sh
whereis ls
```
使用locate命令
`locate`命令用于在系统的数据库中查找指定的文件或目录。例如:
```sh
locate ls
```
使用find命令
`find`命令用于在指定的目录中查找文件或目录。例如:
```sh
find / -name ls
```
使用type命令
`type`命令用于查看命令的类型(内置命令、外部命令或别名)。例如:
```sh
type ls
```
使用--help选项
大部分命令支持`--help`选项,可以通过在命令后面加上`--help`来获取命令的简要帮助信息。例如:
```sh
ls --help
```
使用info命令
`info`命令是`man`命令的一个替代品,提供了更加详细的命令帮助信息。例如:
```sh
info ls
```
根据具体需求选择合适的方法来获取命令,可以提高程序的灵活性和可维护性。