循环多个命令

时间:2016-10-27 08:08:54

标签: powershell foreach hashtable

我正在编写一个脚本,该脚本应该为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'类型。

1 个答案:

答案 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")