在 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)
}
}
试图将 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)
}
}