学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题。调用了外部程序,势必就要对进程进行管理,这就是本文要介绍的。

1、Get-Process,返回进程。

Get-Process [-id] ,按pid获取
Get-Process -name ,按进程名
Get-Process -inputObject ,传入参数
举例:get-process -name mmc,显示所有mmc的进程。

2、Start-Process,启动一个进程

语法:Start-Process -FilePath <可执行文件的路径> -ArgumentList <参数列表>
说明:在PowerShell v2.0以上才支持!

3、Stop-Process,停止一个或多个正在运行的进程。
Stop-Process [-id] ,停止指定的pid数组的进程
Stop-Process -name ,停止一组进程名列表
Stop-Process -inputObject ,停止一个Process类型的进程数组里面的所有进程。

如:Stop-Process -name notepad,这个功能也可以这样实现:
$pro = Get-Process -name notepad; $pro.Kill(); 或 (Get-Process -name notepad).Kill();

Windows提供了一个taskkill.exe程序,通过它也可以停止程序:taskkill /f /im java.exe

用这个命令,当我们要结束在cmd.exe里面运行的java.exe时,我们只结束java.exe,这个时候cmd也会被结束。

4、使用点(.)调用ps1或批处理文件(Invoke-Expression)
语法:.
说明:可以在PowerShell交互环境中和PS1文件中调用现有的PS1文件,使用点(.)作为调用符。我曾经试过使用Invoke-Item,好像没有启动得了。
也可以使用Invoke-Expression(Alias为iex)命令来实现,有两种用法:

复制代码 代码如下:
C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1"
C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression

注意:这里可以使用ps1,也可以使用其它可执行的批处理文件,如.cmd、.bat等。

5、以默认打开方式打开文件(Invoke-Item)
语法:Invoke-Item <要打开的文件路径>
举例:Invoke-Item "c:\1.txt" #将使用txt文件的默认打开工具(即记事本)打开c:\1.txt
说明:文件必须存在,否则会报告“该路径不存在”的错误。

6、使用&调用程序
语法:& <可执行文件路径> [<参数列表>]
举例:

复制代码 代码如下:
$execPath="D:\Progra~1\FlashFXP\flashfxp.exe"
$execArgs="-upload ftp://u:p@ip:21 "
$execArgs=$execArgs+"-remotepath=`"/`" "
$execArgs=$execArgs+"-localpath=`"d:\123\`" "
& $execPath $execArgs.Split()

7、使用cmd执行DOS内部或外部命令
说明:有很多DOS命令被CmdLet的别名占用了,所以如果还像之前一样使用就会发现参数可能不正确了。为了可以与以前批处理里面用法兼容,可以使用cmd /c来调用DOS内部或外部命令。
语法:cmd /c
举例:cmd /c del /s /q D:\testdir\testsubdir\*.*

PowerShell中调用外部程序和进程操作命令例子的更多相关文章

  1. JAVA中调用外部程序,并等待其退出(涉及Runtime和ProcessBuilder)

    这段时间要写一个java调用外部程序的功能,踩了几个坑,这里分享一下. 首先用的是RunTime,调用代码如下: Process pro = Runtime.getRuntime().exec(&qu ...

  2. 在Unity3d中调用外部程序及批处理文件

    如果调用外部普通应用程序, 比如notepad.exe 这样调用 static public bool ExecuteProgram(string exeFilename, string workDi ...

  3. 让powershell同时只能运行一个脚本(进程互斥例子)

    powershell,mutex,互斥,进程互斥,脚本互斥 powershell脚本互斥例子,在powershell类别文章中,声明原创唯一. powershell 传教士 原创文章 2016-07- ...

  4. C#使用Process类调用外部程序(转)

    在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...

  5. C#Process调用外部程序

    前言 使用C#调用外部程序,一种是通过Process类,一种是通过命令行,本文主要说一下使用C#中的Process类调用外部程序的方式. 过程: 1. 创建Process对象 2. 配置启动选项(输入 ...

  6. start 调用外部程序

    批处理中调用外部程序的命令(该外部程序在新窗口中运行,批处理程序继续往下执行,不理会外部程序的运行状况),如果直接运行外部程序则必须等外部程序完成后才继续执行剩下的指令 例:start explore ...

  7. 如何在windows计划中调用备份sharepoint2010网站集的powershell脚本

    最近有个项目需要在在windows计划中使用powershell脚本备份sharepoint2010网站集,打开sharepoint的powershell执行命令管理界面的属性 查看: C:\Wind ...

  8. C# 使用Process调用外部程序中所遇到的参数问题

    在使用Process.Start 调用外部程序时,除了程序的地址之外,是可以传递参数的,Process.Start 也有多个重载: // // 摘要: // 启动由包含进程启动信息(例如,要启动的进程 ...

  9. Delphi - 调用外部程序并阻塞到外部程序中

    Delphi 调用外部程序并阻塞到外部程序中 背景说明: 前段时间开发一个数据转换的系统,业务逻辑中说明数据需要压缩成.tar.gz格式. 我在Windows系统下采用,先生成批处理文件,然后调用Wi ...

随机推荐

  1. linux内存管理子系统

    一.Linux内存管理模型 1.虚拟地址与物理地址的映射 2.物理地址的分配二.虚拟地址与物理地址的映射 1.虚拟地址空间分布 32位处理器有32根地址总线,可访问4G的物理空间.其中有0-3G为用户 ...

  2. 基于HTML5 Canvas的饼状图表实现教程

    昨天我们分享了一款基于HTML5的线性图表应用,效果非常不错,可以看在线DEMO或者实现教程.今天我们继续来分享一款基于HTML5的网页图表,它也是利用Canvas绘制的,但是和前面不同的是,这款图表 ...

  3. POJ-2386(深广搜基础)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25322   Accepted: 12759 D ...

  4. <WinForm_1>初识WinForm编程

    暑假花了一个多月自学了Win32 SDK编程,不敢说成为了高手,但是还是颇具收获——windows的消息机制(著名的消息循环).一切控件均是窗口…… 曾经有一位网友(和我一个专业的)向我吐槽:Win3 ...

  5. cnBlogs_代码着色

    一个程序员当然希望写出来的代码不仅质量上好,而且看上去也很好.以前在网络上看见别人写的代码,着色以及背景都好极了,很是羡慕,但就是不知道如何设置 --------------------------- ...

  6. SQL Server 2008 导出数据与导入数据任务介绍

    一. 实例数据库介绍 源数据库Test_Other_DB:存在tb_Class,tb_Student,tb_TestTable三张表. 目标数据库TestDB_Output:空库,不含任何表. 二. ...

  7. Android应用调试经常使用知识

    1.Android应用启动过程调试 1).进入设置-->辅助功能-->开发人员选项:假设没有打开开发人员模式.在拨号里面输入*#*#6961#*#*: 2).找到选择调试应用,打开选择你要 ...

  8. void*指针

    C++提供了一种特殊的指针类型void*,它可以保存任何类型对象的地址: void*表明该指针与一地址值相关,但不清楚存储在此地址上的对象的类型. void*指针只支持几种有限的操作: 1)与另一个指 ...

  9. 在Ubuntu下的Apache上建立新的website,以及enable mono

    1. 在Apache下建立新的web site a. $>cd /etc/apache2/ b. $>vi ports.conf 填加Listen 8090(注意不要打开8080,因为To ...

  10. XAML 命名空间和命名空间映射

    本主题将介绍大部分 XAML 文件的根元素中存在的 XML/XAML 命名空间 (xmlns) 映射.它还将介绍如何为自定义类型和程序集生成类似的映射. XAML 命名空间如何与代码定义和类型库相关 ...