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

Append number to end of string in Powershell for loop

试图将 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...

我想要的结果是:Name=Service - 1,Name=Service - 2,等等。我知道发生了什么,但我不确定获得我想要的东西的正确方法。

非常感谢任何帮助。

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

左右

在您的函数中 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) 
  }  
}