进程启动命令行中怎么传递带空格的参数
来源:互联网 发布:淘宝封号影响支付宝吗 编辑:程序博客网 时间:2024/04/29 13:49
进程启动命令行中怎么传递带空格的参数
一般我们在一个exe里面启动另外一个exe使用 ShellExecute 命令函数:
比如下面的代码:
要启动的exe位于D盘的根目录下面,要传递的命令行参数为一个路径:
D:/config.ini
那么在MyExe.exe里面怎么获得传递过去的命令行参数呢,看下面的代码:
那么,我们从上面的代码可以得出,命令行参数为argc-1个,都放在argv这个数组中,其中 argv[0] 是程序本身的执行路径,所以argc>=1 .
我们通过argv[1]就可以获得第一个命令行参数,比如上面的代码,我们就获得了传递过来的命令行参数为D:/config.ini 。
但是,当我改变传递的命令行参数的内容为D:/Program Files/config.ini的时候
我的MyExe.exe程序对命令行参数的解析出问题了,解析的结果为:D:/Program,而且argc=3,显然,程序把我的一个参数“D:/Program Files/config.ini”解析为两个参数:
argv[1]="D:/Program" , argv[2]="Files/config.ini" 了。
这是个比较严重的bug ,那么怎么告诉系统我传递的是一个带有空格的参数,而不是多个参数呢?
解决方法
可以使用下面的代码:
将要传递的参数用"/"" 和 "/"" 给包起来,然后传递给ShellExecute就不会出现问题了。
- 进程启动命令行中怎么传递带空格的参数
- 【转】Javascript函数中传递带空格的参数
- Javascript函数中传递带空格的参数
- shell函数传递带空格的参数
- 创建带命令行参数的应用进程
- javascript 传递参数中带加号自动变成了空格的解决方法
- Dos命令行中怎么向Java程序传递参数
- win10系统中启动Edge浏览器带命令行参数
- JS 传递的是函数 怎么带参数
- C中的命令行中如果本身参数有空格怎么处理(更新中。。)
- C#启动一个带命令行参数的程序
- 如何得到其它进程的启动命令行参数
- 如何得到其它进程的启动命令行参数
- 如何得到其它进程的启动命令行参数 (转)
- 如何得到其它进程的启动命令行参数
- uboot中背光的启动参数传递
- VS启动调试传递命令行参数
- VS启动调试传递命令行参数
- MFC入口点及初始化分析
- Android实现图片放大缩小
- 使用手机的小窍门
- (转载)UML解惑:图说UML六大关系
- Linux下一次解压多个文件
- 进程启动命令行中怎么传递带空格的参数
- VC6.0 编译优化开关
- OSG中的示例程序简介
- 循环不变式的思想及其应用
- Linux启动过程综述
- 循环不变式的思想及其应用
- SIM卡实用知识
- 松下P42U20C的工程模式进入方法
- stagefright + omx小结