#powershell
#powershell
Вопрос:
когда я начал выполнять запрос ping для большой области, я сначала начал «записывать» все IP-адреса на листе Excel, чтобы иметь вывод csv для импорта в powershell.
Затем я подумал о том, чтобы упростить эти вещи в powershell с меньшим объемом выполняемой работы.
$range = 1..254
$ips1 = ForEach-Object -Process {'10.10.1.' $Range}
$ips2 = ForEach-Object -Process {'10.10.2.' $Range}
$ips3 = ForEach-Object -Process {'10.10.3.' $Range}
$ips4 = ForEach-Object -Process {'10.10.4.' $Range}
$ips5 = ForEach-Object -Process {'10.10.5.' $Range}
$ips6 = ForEach-Object -Process {'10.10.6.' $Range}
$ips7 = ForEach-Object -Process {'10.10.7.' $Range}
$ips8 = ForEach-Object -Process {'10.10.8.' $Range}
$ips9 = ForEach-Object -Process {'10.10.9.' $Range}
$ips10 = ForEach-Object -Process {'10.10.10.' $Range}
$ips11 = ForEach-Object -Process {'10.10.11.' $Range}
$ips12 = ForEach-Object -Process {'10.10.12.' $Range}
$ips13 = ForEach-Object -Process {'10.10.13.' $Range}
$ips14 = ForEach-Object -Process {'10.10.14.' $Range}
$ips15 = ForEach-Object -Process {'10.10.15.' $Range}
$ips16 = ForEach-Object -Process {'10.10.16.' $Range}
$ips17 = ForEach-Object -Process {'10.10.17.' $Range}
$ips18 = ForEach-Object -Process {'10.10.18.' $Range}
$ips19 = ForEach-Object -Process {'10.10.19.' $Range}
$ips20 = ForEach-Object -Process {'10.10.20.' $Range}
$ips21 = ForEach-Object -Process {'10.10.21.' $Range}
$ips22 = ForEach-Object -Process {'10.10.22.' $Range}
$ips23 = ForEach-Object -Process {'10.10.23.' $Range}
$ips24 = ForEach-Object -Process {'10.10.24.' $Range}
$ips25 = ForEach-Object -Process {'10.10.25.' $Range}
$ips26 = ForEach-Object -Process {'10.10.26.' $Range}
$ips27 = ForEach-Object -Process {'10.10.27.' $Range}
$ips28 = ForEach-Object -Process {'10.10.28.' $Range}
$ips29 = ForEach-Object -Process {'10.10.29.' $Range}
итак, я добрался до этого момента, но теперь я застрял, как я могу сделать это еще короче без ошибок, поэтому впоследствии у меня есть одна большая переменная, которая хранит все IP-адреса в одном
Ответ №1:
Вот более короткое решение с тем же результатом, что и ваш код:
ForEach ($Network in 1..29) {
$IPAddresses = ForEach ($IP in 1..254) {
"10.10.$Network.$IP"
}
New-Variable -Name IPs$Network -Value $IPAddresses
}
Чтобы получить единую переменную со всеми IP-адресами:
$AllIPs = ForEach ($Network in 1..29) {
ForEach ($IP in 1..254) {
"10.10.$Network.$IP"
}
}
Комментарии:
1. Это делает именно то, что я хотел сделать, поскольку я пытался разобраться в этом, я получал ошибки, поскольку я пытался сделать это только в одном foreach, должно было быть проще, спасибо 🙂