Я struggeling с следующей ситуацией:петля Еогеасп смешивает результат
testfile.txt
1 a 2 b 3 c
Сценарий:
$input = Get-Content "C:\Scripts\testfile.txt"
foreach ($line in $input) {
$var1 = $line.Substring(2,1)
$output = "$var1 is $var2"
if ($line -match "1") {
$var2 = "1"
Write-Host $output
} elseif ($line -match "2") {
$var2 = "2"
Write-Host $output
} elseif ($line -match "3") {
$var2 = "3"
Write-Host $output
} else {}
}
Результат:
a is 3 b is 1 c is 2
Почему результат перепутан? Оно должно быть:
a is 1 b is 2 c is 3
Даже если я поставил $output
в конце цикла foreach
?!
Переместить '$ output =" $ var1 равно $ var2 "' перед 'Write-Host', поскольку это не шаблон, а сразу же expa которая использует предыдущие значения. – wOxxOm
Конечно, тогда он будет работать. Но действительно ли нужно вставлять его в каждое утверждение if? –
Или вы можете изменить каждый Write-Host на «Write-Host» $ var1 is $ var2 «' –