В PowerShell я хочу пройтись по объекту, в котором есть несколько элементов, но я хочу посмотреть только на два элемента, путь и имя, и поработать над ними. Проблема в том, что, если я использую foreach
или ForEach-Object
, он сразу же печатает $line.Name
и $line.Path
, когда я не хочу, чтобы они печатали.
Пробовал foreach
и ForEach-Object
, пробовал void
и | Out-Null
, пробовал $element.Name.ToString()
.
void
и Out-Null
в значительной степени стирает всю вещь, поэтому я не вижу никаких значений, и я все еще могу видеть пустымстроки, в которых были строки void
или Out-Null
.
ToString()
все еще печатает значение.
foreach ($line in $buildPipelineObject) {
# $line.* has leading and trailing spaces, want to trim them
$trimPath = $line.Path # don't print!
$trimPath.Trim()
$trimName = $line.Name.ToString() # don't print!
#[void]Set-Variable -Name "trimName" -Value $line.Name # makes trimName null
$trimName.Trim()
# if pipeline isn't in a subfolder, then I don't need to insert backslash
if ($trimPath -eq "\") {
$pipelineName = $trimPath + $trimName
} else {
$pipelineName = $trimPath + "\" + $trimName
}
Write-Host "pipeline: $pipelineName"
}
Проблема в том, что я запускаю этот блок и вижу вещикак
\
pipelinename1
pipeline: \pipelinename1
\myfolder
pl2
pipeline: \myfolder\pl2
Я хочу видеть только строки "pipe:", например
pipeline: \pipelinename1
pipeline: \myfolder\pl2