如何处理 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'
我有一个 运行 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'