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

How to handle tf.exe errors in PowerShell script

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

$tfExe = {C:\path\to\tf.exe}
& $tfExe checkout / checkin etc.

如果我尝试 运行 checkin 命令到未更改的文件,我得到一个错误:

The following changes were not checked in because the item were not modified.

Undoing edit: {C:\path\to\file}

问题是,我 运行 TFS 构建中的脚本,构建失败并出现错误:

[error] There are no remaining changes to check in.

但这不是真正的错误,如果没有任何变化就不要签入,这对我来说是很好的行为。

如何处理 tf.exe 错误?

我尝试使用 try catch 但没有成功,尽管执行 try 块而不是 catch.

出现错误

我也尝试使用变量获取输出 $test = & $tfExe checkin ...,但仍然出现错误(并且变量为空)。

PowerShell 不理解来自本机可执行文件的错误。您必须解析输出才能做出决定。您可以将错误流重定向到输出流。

$Output = tf.exe … 2>&1

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