在Powershell for循环中将数字附加到字符串的结尾

时间:2015-09-09 17:01:57

标签: powershell powershell-v4.0

尝试将for循环的索引值附加到字符串的末尾,但是我在获取所需结果时遇到了一些麻烦。

这是我与之合作的简短代码块:

编辑:

$apiKey = "ZZZ-ZZZZZ"
$octoHeader = @{ "X-Octopus-ApiKey" = $apiKey }

# GET Source deployment process from Deployment Scaffold project
$json = irm "http://octopusserver/api/deploymentprocesses/deploymentprocess-projects-123" -Headers $octoHeader

$DeploymentSteps = $json.Steps

# Hash table to hold steps
$steps = @{}

function Get-StepType
(
  $StepType
)
{
  foreach ( $Step in $DeploymentSteps | where { $_.Name -eq $StepType } )
  {
    return $Step
  }
}

function Copy-Steps
(
  $StepType,
  $StepCount
)
{
  $Step = Get-StepType -StepType $StepType 

  1..$StepCount | % {

    $Step.Id = ''
    $Step.Name += $_

    # Add step to hash
    $steps.Add("step$($steps.Count + 1)", $step) 
  }  
}

Copy-Steps -StepType 'Service' -StepCount 2 

$steps

这就是结果:

Name                           Value                                                                                                                                     
----                           -----                                                                                                                                     
step1                          @{Id=; Name=Service12; Actions=S...
step2                          @{Id=; Name=Service12; Actions=S...

我之后的结果是:姓名=服务 - 1,姓名=服务 - 2等我知道发生了什么,但我不确定正确的方法来获得什么我之后。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

1..5 | % { [String]::Format("Step {0}", $_) }

或左右

答案 1 :(得分:1)

在您的函数Copy-Steps中,您需要实际复制步骤:

function Copy-Steps
(
  $StepType,
  $StepCount
)
{
  $OriginalStep = Get-StepType -StepType $StepType 

  1..$StepCount | % {

    $Step=$OriginalStep.PSObject.Copy()
    $Step.Id = ''
    $Step.Name += $_

    # Add step to hash
    $steps.Add("step$($steps.Count + 1)", $step) 
  }  
}