1. process 是一个进程,new proces是创建一个新的进程,

2. 线程是thread,它是操作系统的最小的单位,一个进程可以包含多个线程,线程里面可以执行创建进程操作

3. 32位操作系统只能访问32位的进程,比如一个32位的电脑,执行一个exe,这个exe也必须是32位的,否则会报 Win32Exception

4. Process 的 StandardOutput: 表示它执行进程是的输出流,前提条件:RedirectStandardOutput=true、  UseShellExecute=false.

 using (Process process = new Process()){process.StartInfo.FileName = "ipconfig.exe";process.StartInfo.UseShellExecute = false;process.StartInfo.RedirectStandardOutput = true;process.Start();// Synchronously read the standard output of the spawned process.StreamReader reader = process.StandardOutput;string output = reader.ReadToEnd();// Write the redirected output to this application's window.Console.WriteLine(output);process.WaitForExit();}

读取操作包括同步和异步两种,同步读操作直到相关的Process写入StandardOutput流或关闭该流才会完成。

异步读取为StandardOutput输出启用指定的Handler,并立即返回给调用方,在StandardOutput被定向到事件处理程序时,调用方可以执行其他工作

5.ProcessStartInfo

它的参数filename是必传的,可以是一个应用程序,也可以是一个可执行文件,比如一个.sh文件,也可以是一个.doc 文件,它用什么打开取决于它关联的应用程序,比如.doc文件用WPS打开。

ArgumentList

添加命令不需要转移,不需要预留空格,比如

{ "/c", "dir", @"C:\Program Files\dotnet" }

Arguments

需要完整的参数格式:"/c dir \"C:\\Program Files\\dotnet\"",需要预留空格

CreateNoWindow

是否开启一个新的窗口

Environment

获取应用于此进程及其子进程的环境变量,它是只读的,但是可以更改获取它的变量,更改完之后,UseShellExecute 需要设置为false

myProcess.StartInfo.Environment.Add("TempPath", "C:\\Temp")

FileName

Gets or sets the application or document to start.

UseShellExecute

该值指示是否使用操作系统shell启动进程。

Setting this property to false enables you to redirect input, output, and error streams

指的是graphical shell(类似于Windows shell),而不是命令shell(例如bash或sh),并允许用户启动图形应用程序或打开文档。

WorkingDirectory

当 UseShellExecute = false,  filename要么是绝对路径,如果只是一个文件名的话,则会在环境变量里面搜索有没有加过该文件的路径;如果 UseShellExecute = true, 该路径是包含可执行文件的路径

Process 执行shell相关推荐

  1. Process 执行shell 脚本

    概述: Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序).  Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的退出状态以及销毁(杀 ...

  2. java执行shell脚本 process.waitFor()返回1

    记录一下今天遇到的一个问题 在java代码中执行shell脚本,部分代码如下 Process p = null; List<String> cmds = new ArrayList< ...

  3. Android执行shell命令

    Android执行shell命令 一.方法 /** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/ ...

  4. Python执行 shell 命令并实时打印输出

    from subprocess import Popen, PIPE, STDOUTdef exe_command(command):"""执行 shell 命令并实时打 ...

  5. java连接linux服务器执行shell命令(框架分析+推荐)

    java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...

  6. 怎么通过java去调用并执行shell脚本以及问题总结

    原文 https://blog.satikey.com/p/5759/how-java-calls-and-executes-shell-scripts-and-summary.html 主题 She ...

  7. android shell 批量打包,Android执行shell命令打包

    Android执行shell命令封装 Android可直接调用Runtime执行shell命令来实现一些功能,在此进行了一个封装. 将需要执行的命令添加到一个数组,并判断是否已root,还有一个回调接 ...

  8. java 调用casperjs_Java程序去调用并执行shell脚本及问题总结(推荐)

    摘要: 该文章来自阿里巴巴技术协会(ATA)精选集 背景 我们在开发过程中,大部分是java开发, 而在文本处理过程中,主要就是脚本进行开发. java开发的特点就是我们可以很早地进行TDDL, ME ...

  9. Jenkins小坑之执行Shell

    title: Jenkins小坑之执行Shell tags: Jenkins ExecuteBash daemonize descriptors categories: ci date: 2017-1 ...

最新文章

  1. python:列表增加元素,删除元素,切片等
  2. java异常处理试题答案_Java 面试题和答案 - (下)
  3. SpringBoot 2.x 监控中心:Actuator
  4. 社交网站将推动手游发展
  5. 编辑器FreeTextBox升级至3.0
  6. chrome 代理插件_Chrome浏览器拓展插件同步助手
  7. vs 2005 thread 无法调试
  8. 字符串匹配KMP算法设计C语言,KMP字符串匹配算法笔记
  9. Servlet3.0
  10. 网络收包流程-报文从网卡驱动到网络层(或者网桥)的流程(非NAPI、NAPI)(一)
  11. 各种语音编码方法,所需要的带宽
  12. matplotlib——饼状图pie函数
  13. 【SpringMVC学习10】SpringMVC对RESTfull的支持
  14. 主成分分析二级指标权重_确定权重方法之一:主成分分析
  15. 圣杯布局和双飞翼布局
  16. 软件测试技术什么是分支覆盖,分支覆盖率测试是什么?
  17. QQ被盗后,如何找回好友
  18. T三说茶丨教你分辨头采茶、头春茶、明前茶、雨前茶!
  19. dd指令打包iso文件 linux_Linux_如何在Linux操作系统下创建ISO镜像文件,1、用dd命令#dd if=/dev/cdrom - phpStudy...
  20. torch.nn.RNN基本用法

热门文章

  1. 安华金和成为中国网络安全产业联盟理事成员
  2. pta武林盟主 c(gcc)
  3. MySql常用指令总结
  4. python爬虫获取的网页数据为什么要加[0-python3爬虫爬取网页思路及常见问题(原创)...
  5. 河南大学计算机类课程表,河南大学软件学院 2013—2014学年第一学期11、12级课程表(确定版)...
  6. Excel2013常用函数积累01
  7. POI实现数据分页读取写入excel
  8. 识花草小程序全新改版上线,智能识花新玩法
  9. 罗马复兴各民族兵种详细参数——腓尼基篇
  10. 通达信创建自定义指数