首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓不到NoProcessFoundForGivenName

问抓不到NoProcessFoundForGivenName
EN

Stack Overflow用户
提问于 2019-08-30 17:32:29
回答 1查看 1.1K关注 0票数 2

我有一个powershell脚本,它关闭MS Word中打开的文件名与模式匹配的所有MS Word实例。有时会调用Powershell脚本,但没有运行MS的实例。cmdlet进程用于查找MS并检查当前打开的文件的名称。

下面的捕获NoProcessFoundForGivenName,NoProcessFoundForGivenName或

Microsoft.PowerShell.Commands.GetProcessCommand被抓了。

代码语言:javascript
复制
{
   $MSWordProcessHandle = Get-Process WINWORD
} catch [NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand] {
   Write-Output "No instances of MS Word found running."
}

我一直看到下面的错误。

获取-进程:找不到名为"WINWORD“的进程。验证进程名并再次调用cmdlet。At C:\Utils\scripts\Dev_Set_Close.ps1:24 char:27 + $MSWordProcessHandle = Get-Process WINWORD +~+ CategoryInfo : ObjectNotFound:(WINWORD:String) Get-Process,ProcessCommandException + FullyQualifiedErrorId : NoProcessFoundForGivenName,CategoryInfo

EN

回答 1

Stack Overflow用户

发布于 2019-08-30 18:11:24

首先,您需要使用-ErrorAction Stop强制非终止错误为异常。

然后,当您无法确定要捕获的具体异常时,Lee关于捕获一切的建议是有帮助的:

代码语言:javascript
复制
try {
   $MSWordProcessHandle = Get-Process WINWORD -ErrorAction Stop 
} catch {
  $_.Exception.GetType().FullName
}

这输出Microsoft.PowerShell.Commands.ProcessCommandException

所以,这就是你想要的

代码语言:javascript
复制
try {
   $MSWordProcessHandle = Get-Process WINWORD -ErrorAction Stop 
} catch [Microsoft.PowerShell.Commands.ProcessCommandException]{
   Write-Output "No instances of MS Word found running."
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57731019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档