PowerShell获取内容:尝试{..} catch {..}?

时间:2014-06-15 12:51:30

标签: file powershell

我做了

try {
    $g = Get-Content $file
} catch { 
    return ""
}

但是只要另一个进程仍然写入$ file(并阻止它),我收到一条错误消息:无法访问该文件为..

为什么我没有在catch {}中“登陆”但是收到错误 - 如何检查文件是否可访问?

提前致谢, 天哪

得到了它:)

我只是使用:

 try {
     $g = New-Object system.IO.StreamReader $file
 } catch { 
     return ""
 }

如果文件仍然被写入,则重定向到catch-branch

1 个答案:

答案 0 :(得分:9)

在Try / Catch中,仅在终止错误时调用Catch块。在cmdlet上使用-ErrorAction Stop可以强制终止所有错误:

try {
    $g = Get-Content $file -ErrorAction Stop
} catch { 
    return ""
}