在程序中调用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# 调用命令行,参数有空格相关推荐

  1. linux命令行参数含空格,Linux的命令行参数风格

    在Linux中,几乎所有程序都会提供几个命令行选项,有些程序提供的命令行参数多到咂舌!这样做使得程序的运行非常灵活,而且程序的配置信息可以由脚本指定,这对于作为管道或过滤器的程序尤其重要.有三种约定可 ...

  2. c#调用命令行遇到带空格的路径

    想用 c#调用如下的DOS命令: C:\Program Files\Common Files\System\DBWatcherInstall\dtexec.exe /f C:\Program File ...

  3. linux命令行参数含空格,linux-具有命令行参数和空格的Perl脚本

    我觉得我在这里似乎遗漏了一些明显的东西,但是我似乎无法弄清楚发生了什么.我有一个从C代码调用的perl脚本.脚本参数是这样的: my_script "/some/file/path" ...

  4. 如何调用cmd.exe程序,并可以传递一些命令行参数

    语句是WinExec("cmd.exe /k 命令行参数",SW_SHOW); 下面是全部解释: 启动 Windows XP 命令解释程序一个新的实例 CMD [/A | /U] ...

  5. python命令行参数 空格_Python - 命令行参数

    前言 每个脚本或者命令行程序都可以输入一些参数,通常有两种规范. 短格式,"-"号后面要紧跟一个选项字母,如果还有此选项的附加参数,可以用空格分开,也可以不分开,长度任意,可以用引 ...

  6. python命令行参数 空格_Python 命令行参数

    Python 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以使用 sys 的 sys.a ...

  7. getopt函数—分析命令行参数

    2019独角兽企业重金招聘Python工程师标准>>> getopt(分析命令行参数) 相关函数 表头文件 #include<unistd.h> 定义函数 int get ...

  8. 在Visual Studio中使用命令行参数进行调试

    我正在Visual Studio中开发一个C ++命令行应用程序,需要使用命令行参数进行调试. 目前我只使用我需要的参数(如此program.exe -file.txt )运行生成的EXE文件,但这样 ...

  9. Linux进程-命令行参数和环境列表

    命令行参数 在C中,main函数有很多的变种,比如 main(), int main(), int main(int argc, char *argv[]), int main(int argc, c ...

最新文章

  1. NPOI读写Excel
  2. 整图下沉,MindSpore图引擎详解
  3. 机器学习中的集成学习模型实战完整讲解
  4. IX1000系统信息收集
  5. 南航里程每年清空吗_航空里程被盗用,多位明星中招!隐私保护真的这么难吗?...
  6. 思维导图分析http之前端组成
  7. c语言else匹配问题
  8. 使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
  9. obj模型 vue_uni-app npm 包手机端运行报错(vue-3d-model)
  10. python idle 常规命令_Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
  11. YOLO算法的ZYNQ移植尝试(SDx方法、ARM部分)
  12. excel二极管伏安特性曲线_【电子知识点】半导体二极管amp;三极管
  13. 【AI视野·今日Robot 机器人论文速览 第二十三期】Tue, 28 Sep 2021
  14. matlab经纬度距离方位角,计算经纬度、距离、方位角(示例代码)
  15. Rockchip | Rockchip固件升级工具
  16. Doom3证明了“保持简单”有效。
  17. 用java制作扑克牌_JAVA入门第三季-简易扑克牌程序-个人编写-源代码(含截图)...
  18. PyTorch基础:神经网络工具箱torch.nn(优化器nn.optim)
  19. 关于一个App调起另一个App
  20. 基于物理-虚拟协同图网络的客流预测

热门文章

  1. applicationContext.xml详解
  2. GPS时钟同步系统在电力系统的重要性
  3. __asm__ __volatile__内嵌汇编用法简述
  4. 第二次打开不是最大_第二次约会男生该干嘛,才能让关系更进一步?
  5. bootstrap table无法服务器分页_layui分页的大坑,RequestPayload和FormData
  6. vscode we cannot connect_「战报」WE 1-0 DMO:双C无解发育发挥出色 WE稳扎稳打拿下首局...
  7. Linux之防火墙开通端口
  8. qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面
  9. 一般技术书籍出版版税多少_如何为您的技术书籍寻找出版商
  10. 锻炼编程逻辑_通过锻炼提高编程技巧