我正在编写一个脚本,该脚本应该为TFS(Team Foundation Server)中的多个工作区输出挂起的更改。
到目前为止,我已经得到了这个:
$collection="http://tfs-abc/"
$stats = @{
#'WS1' = tf stat /workspace:"WS1" /collection:$collection | select -last 1,
'WS2' = tf stat /workspace:"WS2" /collection:$collection | select -last 1
}
$stats.Keys | ForEach-Object { Write-Host "$_ - $($stats[$_])" }
它只适用于单个项目并产生:
WS2 - 45更改,263检测到更改
如果我取消注释第一个工作区,那么它就不再起作用了,并说:
Select-Object:无法将'System.Object []'转换为参数'Last'所需的'System.Int32'类型。
答案 0 :(得分:1)
只需删除两行之间的“,”,哈希中的元素需要用“;”分隔。或者通过换行:
$collection="http://tfs-abc/"
$stats = @{
'WS1' = tf stat /workspace:"WS1" /collection:$collection | select -last 1
'WS2' = tf stat /workspace:"WS2" /collection:$collection | select -last 1
}
$stats.Keys | ForEach-Object { Write-Host "$_ - $($stats[$_])" }
在PowerShell中使用“,”分隔列表项目,如
$Var = @("a","b","c")