Таким образом, $ _ является информацией из текущего канала.
1,2 | %{
$_
}
response
1
2
, в то время как
1,2 | %{
"a","b" | %{
$_
}
}
response
a
b
a
b
В первом мы видим, что вывод% _ взят из последней информации, которая является 1,2
.В то время как в следующем примере все еще выполняется цикл 1,2, но вывод идет из канала внутри a,b
.
Есть способы обойти это путем сохранения информации первого канала в переменную во втором канале
1,2 | %{
$Num = $_
"a","b" | %{
$Num
}
}
в этом случае вывод равен
1
1
2
2
В приведенном вами примере давайте рассмотрим его форматирование
Get-BitlockerVolume | % {
$_.KeyProtector | ? RecoveryPassword | Backup-BitlockerKeyProtector -MountPoint $_.MountPoint
}
У вас есть 2 разных канала.Первый получает «БитлокерВолюмволюме».Вторая начинается с отправки BitlockerVolume's KeyProtector
.
Это все равно, что сказать
Для каждого тома Bitlocker, Get KeyProtector.
Для каждого KeyProtector, получите мне те, которые имеютэлемент RecoveryPassword
Foreach KeyProtector с элементом RecoveryPassword, резервная защита ключа BitLocker с использованием точек монтирования KeyProtector
Так что в одном последнем замечании я бы также предположил, что приведенный вами пример не будет работать.То, что вы можете искать, это ...
Get-BitlockerVolume | % {
$MountPoint = $_.MountPoint
$_.KeyProtector | ? RecoveryPassword | Backup-BitlockerKeyProtector -MountPoint $MountPoint -KeyProtectorId $_.KeyProtectorId
}