PowerShell中调用外部程序和进程操作命令例子

所属分类: 脚本专栏 / PowerShell 阅读数: 1313
收藏 0 赞 0 分享

学习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\*.*

更多精彩内容其他人还在看

Windows Powershell 管道和重定向

这篇文章主要介绍了Windows Powershell 管道和重定向,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows Powershell 进行数学运算

在Windows PowerShell中, 使用数学运算符来进行数学运算,数学运算符允许你在命令参数中计算数值. 你可以使用一个或者多个运算符进行加减乘除法, 也可以返回除法的余数(模). 包含这些计算的参数, 将计算结果作为参数值. 命令就像处理其他类型参数一样, 来处理参数值
收藏 0 赞 0 分享

Windows Powershell 执行外部命令

Windows PowerShell 在使用方面与 Cmd.exe 并无多大不同,只是 Windows PowerShell 的功能更为强大。与 Cmd.exe 一样,Windows PowerShell 具有内置的脚本编写语言,不过它比 Cmd.exe 原始的批处理语言更为灵活
收藏 0 赞 0 分享

Windows Powershell 命令集 cmdlets

在Windows PowerShell中,需要使用cmdlet执行指令。一个cmdlet代表着可操作某一对象的功能命令,cmdlet可使用"动词-名词"形式的语法:一个动词和一个名词,中间使用连字符连接,例如get-service和start-service。
收藏 0 赞 0 分享

Windows Powershell 别名

简单的说在Windows PowerShell中, 别名就是cmdlets或其他命令的替代名称.为什么要替代cmdlets呢,因为cmdlets命令说实话有点麻烦。
收藏 0 赞 0 分享

Windows Powershell 通过函数扩展别名

这篇文章主要介绍了Windows Powershell 通过函数扩展别名,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows Powershell 执行文件和脚本

PowerShell脚本提供了一个方便的方法来自动化各种琐事。下面是关于PowerShell的一些基本概念,对于PowerShell初学者,掌握这些概念有助于加深对PowerShell脚本的理解。
收藏 0 赞 0 分享

Powershell小技巧之系统运行时间

本文主要教你如何使用powershell计算系统运行时间,其实很简单,因为Windows每次启动都有一个高进度计数器并且当系统运行这个计数器将返回一个毫秒,我们把这个毫秒计算下就得到系统运行时间了
收藏 0 赞 0 分享

Powershell小技巧之使用WMI测试服务响应

这篇文章主要介绍了Powershell小技巧之使用WMI测试服务响应,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell小技巧之使用WMI查询插上的U盘

本文主要讲诉了如何使用WMI查询当前插在你电脑上的USB设备,非常简单,学习powershell的同学可以参考下
收藏 0 赞 0 分享
查看更多