cmd命令行带参启动程序

有一些程序不支持被直接启动,编写代码时,我们可以通过Process类来启动某个进程(某个软件),在不用代码调从而启动某个软件时,windows系统下,通常我们会用到cmd命令行来启动。本文将介绍 cmd常见的命令行启动参数。

1.cmd帮助

  Win+R快捷打开运行窗口,输入cmd确定打开cmd.exe程序。

  cmd帮助:打开 cmd窗口中输入:cmd /?,回车。即可看到相应指令的含义。

2.cmd启动参数

  使用cmd来启动某个应用程序,并向应用程序传入参数:

  下面的指令将使用cmd 间接启动 E盘下的ExportBatchTool.exe程序,并给ExportBatchTool .exe 程序传入C:\190627.whd的启动参数:

  cmd /C E:\ExportBatchTool.exe C:\190627.whd

  /c 在执行完程序之后,cmd也会终止。

  命令:cmd /K E:\ExportBatchTool.exe C:\190627.whd同样会启动ExportBatchTool.exe程序并传递C:\190627.whd参数。

  但是,/k 在执行完程序之后,cmd.exe 依然会继续运行,所以 /c 命令会更适用于自动化的脚本,而 /k命令则更适用于半自动化的脚本。

  Cmd窗口下,直接输入:Start E:\ExportBatchTool.exe C:\190708.whd同样会启动ExportBatchTool.exe程序并传递C:\190627.whd参数。

  START含义:启动单独的窗口以运行指定的程序或命令。Cmd下输入help命令即可查看相应指令含义。

3.参数传递注意事项

3.1多参数传递

  不管java编写的还是C#写的程序,其入口是program类中的main函数,此函数可以接收一个string[]类性的参数。所以,cmd参数传递只能传递字符串数组。那么数组元素怎么区分?cmd以一个空格来区分

  在上面例子中,路径均不涉及空格,且只有一个。如果路径中有空格的话,为避免将此空格用来区分元素,需用引号将包含该空格的元素(路径)引起来,表示一个整体。但实际上,当你此时真给路径加引号,会发现 cmd 就会不识别你的命令路径。

  解决办法

  在整个传给 cmd的命令外层再加一层引号,如:

  cmd /c " "D:\test flo\test.exe" c:\6283.whd "。

3.2特殊字符传递

  在cmd帮助中已有详细的解释说明。现将部分摘录如下,具体参考cmd帮助指令来查看特殊字符处理方式:

  如果字符串加有引号,可以接受用命令分隔符 “&&” 分隔多个命令。

  另外,由于兼容性 原因,/X 与 /E:ON 相同,/Y 与 /E:OFF 相同,且 /R 与 /C 相同。任何其他开关都将被忽略。

  如果指定了 /C 或 /K,则会将该开关之后的命令行的剩余部分作为一个命令行处理,其中,会使用下列逻辑 处理引号(")字符:

  1)如果符合下列所有条件,则会保留命令行上的引号字符:

    - 不带 /S 开关;

    - 正好两个引号字符;

    - 在两个引号字符之间无任何特殊字符, 特殊字符指下列字符: &<>()@^|;

    - 在两个引号字符之间至少有一个空格字符;

    - 在两个引号字符之间的字符串是某个可执行文件的名称。

  2)否则,老办法是看第一个字符是否是引号字符,如果是,则去掉首字符并删除命令行上最后一个引号,保留最后一个引号之后的所有文本。

---------

参考博客文章:https://blog.csdn.net/WPwalter/article/details/94128623

最新文章

  1. 【原创】开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式
  2. CAS客户端服务器端配置步骤
  3. 商城常用css分类代码
  4. LwIP编译方法以及选项说明
  5. 【转】深入了解android平台的jni---注册native函数
  6. XCode请求数据中接收类型的后台与前台处理(本机模拟)
  7. 摘录 javescript 常用函数
  8. 关于Tcp三次握手的思考
  9. WEB程序会话管理--HttpSession和Cookie
  10. static作用
  11. ASP.NET Core - Razor页面之Handlers处理方法
  12. 转每天一个linux命令(14):head 命令
  13. HDU 6184 Counting Stars 经典三元环计数
  14. 原生Ajax实现异步交互
  15. MySql 数据库安装、环境变量配置 以及 本地连接
  16. Prometheus监控学习笔记之Prometheus普罗米修斯监控入门
  17. 【特性】MySQL 8 新特性
  18. mycat 1.6 配置【仅学习测试配置使用】
  19. [转]C#操作INI文件
  20. Struts 2 + Hibernate + Spring 整合要点

热门文章

  1. Docker笔记(二):Docker管理的对象
  2. python数据库-MongoDB的基本使用(54)
  3. U盘被写保护大全解
  4. 使用gets函数常见问题
  5. sql server 2382端口问题
  6. Excel催化剂开源第29波-在Winform上使用富文本编辑器控件
  7. 在dotnet core实现类似crontab的定时任务
  8. 从7点到9点写的小程序(用了模块导入,python终端颜色显示,用了点局部和全局可变和不可变作用域,模块全是自定义)
  9. c语言进阶7-结构体
  10. [小米OJ] 8. 最少交换次数