C# 调用命令行,参数有空格
在程序中调用cmd命令打开一个文件,而文件路径带有空格,如果直接把路径传给cmd,那么cmd就会把路径空格前面的部分当做是一个参数,空格后当做另一个参数,命令行执行把后边截掉了,导致程序出错,会弹出了C:\Program 不是内部或外部命令,也不是可运行的程序或批处理文件的错误提示。解决方法是把传入的参数前后添加双引号,如下:
private static void ResxToRes(ArrayList ResxPath){//ResxFile 是一个文件夹,用来存放 需要转换的.resx 文件 string s = ""; Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.CreateNoWindow = false; p.Start(); // + '"' + '"' + 可以用 \"\" 替换 // p.StandardInput.WriteLine("%comspec% /k " + '"' + '"' + @"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin" + '"' + '"'); // p.StandardInput.WriteLine("%comspec% /k " + '"' + '"' + @"C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" + '"' + '"' + " x86 "); // p.StandardInput.WriteLine(@" cd C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin"); for (int i = 0; i < ResxPath.Count; i++) { string Filename = ResxPath[i].ToString(); //根据需要写相应算法生成文件名; ////resgen E:\Filename1.resx e:\ResName1.resources // p.StandardInput.WriteLine("ResGen" + Filename + " " + System.IO.Path.GetFileNameWithoutExtension(Filename) + @".resx");\string string ResName =Path.GetFullPath(Filename)+ ".resx"; string str = "\""+@"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\ResGen.exe"+"\"" + " " + Filename + " " + ResName; p.StandardInput.WriteLine(str);//参数带有空格 应加上引号处理 p.StandardInput.WriteLine(" "); } //此处要exit两次 //退出visual studio 到 cmd.exe p.StandardInput.WriteLine("exit"); //退出cmd.exe p.StandardInput.WriteLine("exit"); p.WaitForExit(); s = s + p.StandardOutput.ReadToEnd(); p.Close(); // return s; }
public static string startcmd(string command){string output = "";try{Process cmd = new Process();cmd.StartInfo.FileName = command;cmd.StartInfo.UseShellExecute = false;cmd.StartInfo.RedirectStandardInput = true;cmd.StartInfo.RedirectStandardOutput = true;cmd.StartInfo.CreateNoWindow = true;cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;cmd.Start();output = cmd.StandardOutput.ReadToEnd();Console.WriteLine(output);cmd.WaitForExit();cmd.Close();}catch (Exception e){Console.WriteLine(e);}return output;}public static string startcmd(string command, string argument){string output = ""; Process cmd = new Process();try{cmd.StartInfo.FileName = command;cmd.StartInfo.Arguments = argument;cmd.StartInfo.UseShellExecute = false;cmd.StartInfo.RedirectStandardInput = true;cmd.StartInfo.RedirectStandardOutput = true;cmd.StartInfo.CreateNoWindow = true;cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;cmd.Start();output = cmd.StandardOutput.ReadToEnd();Console.WriteLine(output);cmd.WaitForExit();cmd.Close();}catch (Exception e){cmd.Close();Console.WriteLine(e);}return output;}
转载于:https://www.cnblogs.com/zuiyirenjian/p/4053388.html
C# 调用命令行,参数有空格相关推荐
- linux命令行参数含空格,Linux的命令行参数风格
在Linux中,几乎所有程序都会提供几个命令行选项,有些程序提供的命令行参数多到咂舌!这样做使得程序的运行非常灵活,而且程序的配置信息可以由脚本指定,这对于作为管道或过滤器的程序尤其重要.有三种约定可 ...
- c#调用命令行遇到带空格的路径
想用 c#调用如下的DOS命令: C:\Program Files\Common Files\System\DBWatcherInstall\dtexec.exe /f C:\Program File ...
- linux命令行参数含空格,linux-具有命令行参数和空格的Perl脚本
我觉得我在这里似乎遗漏了一些明显的东西,但是我似乎无法弄清楚发生了什么.我有一个从C代码调用的perl脚本.脚本参数是这样的: my_script "/some/file/path" ...
- 如何调用cmd.exe程序,并可以传递一些命令行参数
语句是WinExec("cmd.exe /k 命令行参数",SW_SHOW); 下面是全部解释: 启动 Windows XP 命令解释程序一个新的实例 CMD [/A | /U] ...
- python命令行参数 空格_Python - 命令行参数
前言 每个脚本或者命令行程序都可以输入一些参数,通常有两种规范. 短格式,"-"号后面要紧跟一个选项字母,如果还有此选项的附加参数,可以用空格分开,也可以不分开,长度任意,可以用引 ...
- python命令行参数 空格_Python 命令行参数
Python 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以使用 sys 的 sys.a ...
- getopt函数—分析命令行参数
2019独角兽企业重金招聘Python工程师标准>>> getopt(分析命令行参数) 相关函数 表头文件 #include<unistd.h> 定义函数 int get ...
- 在Visual Studio中使用命令行参数进行调试
我正在Visual Studio中开发一个C ++命令行应用程序,需要使用命令行参数进行调试. 目前我只使用我需要的参数(如此program.exe -file.txt )运行生成的EXE文件,但这样 ...
- Linux进程-命令行参数和环境列表
命令行参数 在C中,main函数有很多的变种,比如 main(), int main(), int main(int argc, char *argv[]), int main(int argc, c ...
最新文章
- NPOI读写Excel
- 整图下沉,MindSpore图引擎详解
- 机器学习中的集成学习模型实战完整讲解
- IX1000系统信息收集
- 南航里程每年清空吗_航空里程被盗用,多位明星中招!隐私保护真的这么难吗?...
- 思维导图分析http之前端组成
- c语言else匹配问题
- 使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
- obj模型 vue_uni-app npm 包手机端运行报错(vue-3d-model)
- python idle 常规命令_Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
- YOLO算法的ZYNQ移植尝试(SDx方法、ARM部分)
- excel二极管伏安特性曲线_【电子知识点】半导体二极管amp;三极管
- 【AI视野·今日Robot 机器人论文速览 第二十三期】Tue, 28 Sep 2021
- matlab经纬度距离方位角,计算经纬度、距离、方位角(示例代码)
- Rockchip | Rockchip固件升级工具
- Doom3证明了“保持简单”有效。
- 用java制作扑克牌_JAVA入门第三季-简易扑克牌程序-个人编写-源代码(含截图)...
- PyTorch基础:神经网络工具箱torch.nn(优化器nn.optim)
- 关于一个App调起另一个App
- 基于物理-虚拟协同图网络的客流预测
热门文章
- applicationContext.xml详解
- GPS时钟同步系统在电力系统的重要性
- __asm__ __volatile__内嵌汇编用法简述
- 第二次打开不是最大_第二次约会男生该干嘛,才能让关系更进一步?
- bootstrap table无法服务器分页_layui分页的大坑,RequestPayload和FormData
- vscode we cannot connect_「战报」WE 1-0 DMO:双C无解发育发挥出色 WE稳扎稳打拿下首局...
- Linux之防火墙开通端口
- qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面
- 一般技术书籍出版版税多少_如何为您的技术书籍寻找出版商
- 锻炼编程逻辑_通过锻炼提高编程技巧