C++获取命令行参数命令
1直接命令行行输入
在exe文件夹 shift+鼠标右键 从命令行进入当前文件夹
执行
2从脚本启动
每个参数用空格分开
Set ws = Createobject("Wscript.shell") ws.run "Project1.exe 0 1 ./pic/0/ 2592.88 2048", 1 WScript.Sleep 200 #关闭 ws.run "taskkill /f /im Project1.exe",0
run函数有三个参数,
第一个参数是你要执行的程序的路径,若路径中存在空格,记得要用""括起来,如 """C:Program Files n.exe"""的形式或者Chr(34)&"C:Program Files n.exe"&Chr(34)的形式,
第二个程序是窗口的形式,0是在后台运行;1表示正常运行;2表示激活程序并且显示为最小化;3表示激活程序并且显示为最大化;一共有10个这样的参数如下表。
intWindowStyle 说明 0 隐藏一个窗口并激活另一个窗口。 1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。 2 激活窗口并将其显示为最小化窗口。 3 激活窗口并将其显示为最大化窗口。 4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。 5 激活窗口并按当前的大小和位置显示它。 6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。 7 将窗口显示为最小化窗口。活动窗口保持活动状态。 8 将窗口显示为当前状态。活动窗口保持活动状态。 9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。 10 根据启动应用程序的程序状态来设置显示状态。
第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。
其实,run做为函数,前面还有一个接受返回值的变量,一般来说如果返回为0,表示成功执行,如果不为0,则这个返回值就是错误代码,可以通过这个代码找出相应的错误。
代码
#include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "---------------说明-----------------" << endl; cout << "输入参数都已char数组存在argv[i]" << endl; cout << "输入参数argv[0]是exe的路径" << endl; cout << "输入参数:" << "Project1.exe 0 1 ./pic/0/ 2592.88 2048" << endl; cout << "----------------全部参数----------------" << endl; cout << "输入参数总数是:" << argc << endl; for (int i = 0; i < argc; i++) { cout << "第" << i << "个参数是:" << argv[i] << endl; } cout << "----------------参数转化----------------" << endl; int c_int2int = atoi(argv[1]); //0 cout <<"int参数类型:" << c_int2int << endl; string c_int2string= string(argv[1]);//0 printf("int参数转化string:%s ", c_int2string); string c_string2string = string(argv[3]);// ./pic/0/ printf("string参数:%s ", c_string2string); string c_float2string = string(argv[4]);// 2592.88 printf("float数据转string参数:%s ", c_float2string); cout << "--------------------------------" << endl; system("pause"); }