如何处理PowerShell脚本中的tf.exe错误

如何处理PowerShell脚本中的tf.exe错误,powershell,tfs,tf-cli,Powershell,Tfs,Tf Cli,我有一个运行tf.exe命令的PowerShell脚本 $tfExe = {C:\path\to\tf.exe} & $tfExe checkout / checkin etc. 如果我试图对未更改的文件运行checkin命令,则会出现错误: 未签入以下更改,因为未修改该项 撤消编辑:{C:\path\to\file} 问题是,我在TFS生成中运行脚本,生成失败并出现错误: [错误]没有要签入的剩余更改 但这不是一个真正的错误,如果没有更改,所以不要签入,这对我来说是一个好行为 如何处

我有一个运行
tf.exe
命令的PowerShell脚本

$tfExe = {C:\path\to\tf.exe}
& $tfExe checkout / checkin etc.
如果我试图对未更改的文件运行
checkin
命令,则会出现错误:

未签入以下更改,因为未修改该项

撤消编辑:{C:\path\to\file}

问题是,我在TFS生成中运行脚本,生成失败并出现错误:

[错误]没有要签入的剩余更改

但这不是一个真正的错误,如果没有更改,所以不要签入,这对我来说是一个好行为

如何处理
tf.exe
错误?

我尝试了
try-catch
,但没有成功,尽管出现了错误,
try
块被执行,而不是
catch


我还尝试使用一个变量获取输出
$test=&$tfExe checkin…
,但仍然得到一个错误(变量为空)。

PowerShell无法理解本机可执行文件中的错误。您必须对输出进行解析才能做出决定。您可以将错误流重定向到输出流

$Output = tf.exe … 2>&1

$Output.exception.message -match 'There are no remaining'

$LASTEXITCODE
包含您上次运行的可执行文件的退出代码。但这对我没有帮助,因为只有在我得到错误并且构建已经失败后,我才能调查
$LASTEXITCODE
。我想这对我有帮助!非常感谢。