【发布时间】:2014-12-16 16:07:09
【问题描述】:
我正在使用 PowerShell v4 调用 svn 命令行工具,但无法进行基本的错误处理。我尝试使用 try-catch 块将任何 svn 命令的结果捕获到变量中,即使捕获异常也不起作用
以下结帐有意在控制台中生成“身份验证失败”错误:
trap [SystemException]
{
Write-Output "ERROR: $_";exit 1
}
try
{
$log = svn.exe checkout $Url $Path --no-auth-cache --non-interactive --username "username" --password "Password"
}
catch
{
write-host "$_"
}
在控制台窗格中,显示错误:
svn.exe : svn: E215004: 身份验证失败和交互 提示被禁用;请参阅 --force-interactive 选项 C:\dev\Temp\script.ps1:30 字符:8 + $log = svn.exe checkout $Url $Path --no-auth-cache --non-interactive --username ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (svn: E215004: A...eractive option:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError svn: E215004: 无法连接到 URL 上的存储库 'http://source.com/' 认证失败
$log 变量从未被分配上述输出,try-catch 块和通用陷阱都被忽略。
肯定有人之前已经自动化了一些 SVN,即使没有基本的错误处理,自动化的效果如何?
【问题讨论】:
标签: powershell svn error-handling automation powershell-4.0