c++内调用命令行 不支持中文路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++内调用命令行 不支持中文路径相关的知识,希望对你有一定的参考价值。
我在c++程序中需要调用命令行执行某个exe程序,这个程序的完整路径如下:
c:\testing\中文目录\空格 目录\testing.exe
我已经在这个完整路径两端加上双引号再赋给system执行调用,但是发现失败。而如果直接从命令行输入完整的路径,是可以调用的。最后发现如果在c++程序中用这样的方法调用执行exe,是因为中文路径的原因导致的失败。想问问大家如何解决这个问题。
windows上你可以尝试使用_wsystem,传递宽字符路径。
比如
_wsystem(L"测试\\\\test.exe");不知道你在传递给system函数时,是否将路径的分隔符转义了?如果没有转义,肯定会出现问题。确保代码中的字符串是:
"\\"c:\\\\testing\\\\中文目录\\\\空格 目录\\\\testing.exe\\"" 参考技术A system("\\"c:\\\\testing\\\\中文目录\\\\空格 目录\\\\testing.exe\\"");我这没问题
jmeter命令行执行脚本
为什么要命令行执行脚本:
1、图形化界面消耗更多资源,CPU和内存
2、图形化界面不支持大型的负载测试和性能测试
3、命令行测试支持持续集成,例如放到Jenkins这样的CI工具上
nohup:让程序在后台运行
-h:帮助,打印出有用的信息并退出
-n:以非GUI形式运行Jmeter
-t:Jmeter脚本路径
-l:输出结果路径,如果没有该文件就自动创建,可以生成csv或者jtl文件
-r:远程执行,启动远程服务
-H:代理主机,设置Jmeter使用的代理主机
-P:代理端口,设置Jmeter使用的代理主机的端口号
-e:在脚本运行结束后生成html报告
-o:保存html报告的地址,此文件必须不存在
-J:传递动态参数搭配 duration 持续时间 threadnum 线程数 loopcount 循环次数 ramp 告知Jmeter要在多长时间内建立全部的线程,默认值为0
例如:nohup jmeter -n -t linux2Perf_nomonitor.jmx -l /Users/yangguangrun/Documents/jmeter_test/results/mohe/2daylinux.jtl -J dura=1800 -J threads=50 -J loops=3 -J ramp=20 -e -o /Users/yangguangrun/Documents/jmeter_test/reports/mohe/twodaylinux
当前窗口运行命令(窗口关闭后命令即停止运行):去掉前缀--nohup即可
以上是关于c++内调用命令行 不支持中文路径的主要内容,如果未能解决你的问题,请参考以下文章
已经有了一个在命令行下调用c++ dll库文件的java程序,如何在eclipse中设置相关路径?