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

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

(0)

相关推荐

  • PowerShell中使用Test-Path命令检查文件或文件夹路径是否存在示例

    检查文件或文件夹路径是否存在,在编程中是经常用到的功能.PowerShell对于这个需求提供了一个非常便捷的cmdlet,那就是Test-Path!呵呵,看个名字,你就明白它有多么专业了.看看关于它的基本介绍先: Test-Path,检查路径是否存在. 语法:Test-Path <路径> 说明:这里的路径可以是:文件.文件夹.HKLM路径.环境变量env:路径 下面来举一些例子,让大家更方便懂: 复制代码 代码如下: Test-Path D:\q.txt Test-Path C:\Script

  • Win8系统中使用PowerShell安装APPX应用命令介绍

    在Windows 8平台上,可以安装最新的LOB(业务线)应用程序,即后缀为.APPX的程序.APPX程序一般都需要开发者提交给Windows应用商店,由它审核后统一发布,其他用户通过应用商店下载安装.如果我们自己开发的一个APPX程序,我只想给自己或少部分人用,那也不必走应用商店的复杂流程,可以自己安装在自己的设备上. 本文就介绍如何使用PowerShell来安装APPX程序.当然,这里要注意,既然是APPX程序,那一定是Windows 8系统:既然是Windows 8,那一定是PowerSh

  • PowerShell重启服务命令Restart-Service详细介绍

    PowerShell重启服务(Restart-Service),使用PowerShell可以很方便的操作Windows系统服务,比如实现自动重启服务.本文就介绍如何使用PowerShell来重启服务,以及一些相关的内容.PowerShell中重启服务的cmdlet是Restart-Service,顾名思义就是把服务停止了再启动起来. PowerShell重启服务(Restart-Service) 使用PowerShell可以很方便的操作Windows系统服务,比如实现自动重启服务.本文就介绍如何

  • 25个常用PowerShell命令总结

    尽管Windows PowerShell已经出现一段时间了,习惯命令行的管理员可能对了解PowerShell功能的基础很感兴趣. 下面我们看看能由Windows PowerShell完成的最常见的25个任务.不止是这些任务很简单,显示语句的命令架构和其他PowerShell命令也很简单.掌握好这些基本命令是成为PowerShell专家的必经之路. 入门级别 1. 像文件系统那样操作Windows Registry--cd hkcu: 2. 在文件里递回地搜索某个字符串--dir –r | sel

  • 简单谈谈PowerShell 4.0中的新命令

    随着PowerShell 3.0和Windows Server 2012版本的发布,微软提升了Windows PowerShell的功能,在PowerShell 4.0和Windows Server 2012 R2版本发布时,微软还会继续添加新功能和改善已有功能.本文中,我们盘点了PowerShell 4.0中的十个新命令. Save-Help Get-Help是PowerShell入门级命令.Get-Member帮助获取内容,你可以用它查看另一个PowerShell对象的属性和方法.Power

  • PowerShell中使用Get-ChildItem命令读取目录、文件列表使用例子和小技巧

    本文介绍一个PowerShell中使用Get-ChildItem这个cmdlet来获取目录下的文件列表.Get-ChildItem是获取子项目的意思,可以获取一个目录下的文件和子目录. 在DOS系统下,我们想查看一个目录下有哪些子目录和文件,我们可以通过dir命令来实现.在PowerShell中,dir命令貌似仍然可用.但洪哥告诉你,这个dir已经不是cmd.exe中的那个dir了,它是Get-ChildItem这个cmdlet的别名.也就是说,使用Get-ChildItem和使用dir得到的效

  • Windows Powershell 执行外部命令

    Powershell 能够像CMD一样很好的执行外部命令. 通过netstat查看网络端口状态 PS C:\PS> netstat Active Connections Proto Local Address Foreign Address State TCP 192.168.0.100:3049 192.168.0.88:7575 ESTABLISHED TCP 192.168.0.100:3052 192.168.0.88:7575 ESTABLISHED TCP 192.168.0.100

  • PowerShell中运行CMD命令的技巧总结(解决名称冲突和特殊字符等问题)

    引言 我从老旧的 CMD.EXE 命令行换到优秀的 POWSERSHELL.EXE 已经有一段时间啦.您可能知道新的 Windows PowerShell 可以运行任何旧命令.不过有些旧命令的名称或语法可能会产生问题.但这都不是事儿. 麻烦 1:名称冲突 PowerShell 的 cmdlet 别名和旧命令的名称有冲突是个常见的问题.比如说您喜欢的服务控制命令 SC.EXE.SC.EXE 非常灵活!我能理解您为什么喜欢它(不要为用 NET.EXE 管理服务找借口).如果您想查看 SMB Serv

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

    学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富--通过调用外部程序去解决问题.调用了外部程序,势必就要对进程进行管理,这就是本文要介绍的. 1.Get-Process,返回进程. Get-Process [-id] ,按pid获取 Get-Process -name ,按进程名 Get-Process -inputObject ,传入参数 举例:get-process -name mmc,显示所有mmc的进程. 2.St

  • Powershell中调用邮件客户端发送邮件的例子

    你可以使用Send-MailMessage发送邮件,但是你想从你默认MAPI客户端准备发送一份邮件,这也不是很麻烦: 复制代码 代码如下: $subject = 'Sending via MAPI client'$body = 'My Message'$to = 'tobias@powertheshell.com' $mail = "mailto:$to&subject=$subject&body=$body" Start-Process -FilePath $mail

  • PowerShell中调用WPF生成炫酷窗口实例

    怎样在PowerShell中调用WPF,你知道,我也知道:怎样在PowerShell中将很长的.NET类型名称缩短成别名,你知道,我也知道.但是怎样将这两个知识点融汇贯通,写出一个优雅的DEMO,并且让你一眼就能看出,这就是WPF,不是别的,也许你以前就知道,而我直到今天才知道,有种相见恨晚的感觉. 先看一下炫酷的效果吧! PowerShell之WPF炫酷 # Plik: 4_Demo_v3_Reflection.ps1 #requires -version 3 $Akceleratory =

  • PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子

    本文介绍在PowerShell中如何使用.NET对象,PowerShell内在支持大量的.NET对象. 调用类的静态方法 用中括号把类的名称括起来,然后输入两个冒号,然后再输入方法名,最后是方法的参数.语法如下: [类名]::方法名(参数列表) 如: 复制代码 代码如下: [System.Diagnostics.Process]::GetProcessById(0) 访问类的静态属性 要访问.NET类的静态属性,可以使用中括号把类的名称括起来,然后输入两个冒号,然后再输入属性名.语法如下: [类

  • PowerShell中使用return语句退出函数例子

    本文介绍在自定义PowerShell函数时,可以使用return语句来退出函数,同时return语句也可以返回值给函数的调用者. 使用return语句来直接退出函数.看一个退出函数的例子: 复制代码 代码如下: function Get-NamedProcess {     param     ($name=$null)     if ($name -eq $null)     {         Write-Host -ForegroundColor Red 'Specify a name!'

  • PowerShell中常用的一些特殊运算符介绍

    &,调用运算符. 语法:& <可执行文件路径> [<参数列表>] 举例: 复制代码 代码如下: $execPath="D:\Progra~1\FlashFXP\flashfxp.exe" $execArgs="-upload ftp://u:p@ip:21 " $execArgs=$execArgs+"-remotepath=`"/`" " $execArgs=$execArgs+&qu

  • C#使用Process类调用外部程序分解

    在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程. 一.启动进程实例 复制代码 代码如下: Process myProcess = new Process();   try  {       myProcess.StartInfo.UseShellExecute = false;       myProcess.StartInfo.FileName = "test.exe";    

  • PowerShell中Job相关命令及并行执行任务详解

    前言 在 PowerShell 中可以轻松的执行后台任务并且让多个后台任务并行执行.本文介绍 PowerShell 中 Job 相关的一些命令,并通过 demo 演示如何在后台同时执行多个任务.下面话不多说了,来一起看看详细的介绍吧. PowerShell 中执行后台任务的模式 下图描述了在 PowerShell 中执行后台任务的进程模型(此图来自互联网): 首先我们需要一个 PowerShell 进程执行与用户交互的命令,比如执行 Start-Job 命令运行一个后台任务.每一个这样的后台任务

  • C# Process调用外部程序的实现

    前言 使用C#调用外部程序,一种是通过Process类,一种是通过命令行,本文主要说一下使用C#中的Process类调用外部程序的方式. 过程: 1. 创建Process对象 2. 配置启动选项(输入.输出等) 3. 切换工作目录 4. 设置外部程序名 5. 设置传入参数 6. 启动外部程序 7. 等待外部程序结束 8. 关闭外部程序 过程 创建Process对象 Process process = new Process(); //通过new创建一个Process对象 process //使用

  • PowerShell中定义哈希散列(Hash)和调用例子

    所谓哈希变量,是英文单词Hash的音译,专业的叫法是"散列".在我们这里理解哈希变量,它是一个"键值对"的集合,或者说是一本字典. 下面我们使用例子来定义一个哈希变量. 复制代码 代码如下: PS C:\Users\zhanghong> $hash=@{"a"=1; >> "b"="nihao"; >> "c"=Get-Date >> } >

随机推荐