PowerShell:使用输出中的多个值之一
我能够使用ff获取为我的计算机配置的DNS服务器的IP地址:PowerShell:使用输出中的多个值之一,powershell,ip,command-line-interface,Powershell,Ip,Command Line Interface,我能够使用ff获取为我的计算机配置的DNS服务器的IP地址: $DNSServers = Get-DnsClientServerAddress -InterfaceAlias "Ethernet" | select -expand ServerAddresses 输出包含两个不同的IP地址值。如何提取并使用其中一个值作为AD中LDAP查询所用变量的值 例如,如果上述代码的输出是192.168.10.101 172.16.100.201,我应该能够将这些IP地址值中的任何一个传递给LDAP查询代
$DNSServers = Get-DnsClientServerAddress -InterfaceAlias "Ethernet" | select -expand ServerAddresses
输出包含两个不同的IP地址值。如何提取并使用其中一个值作为AD中LDAP查询所用变量的值
例如,如果上述代码的输出是192.168.10.101 172.16.100.201
,我应该能够将这些IP地址值中的任何一个传递给LDAP查询代码的变量。确定数据类型
您编写的命令返回一个数组。您可以通过将其传递到Out GridView
来查看:
$DNSServers | Out-GridView
或检查类型:
$DNSServers.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
访问数据
可以通过索引访问阵列:
$DNSServers[0]
$DNSServers[1]
etc...
需要注意的是,数组索引从零开始,而不是从1开始
对于每个循环
在循环中:
ForEach ($server in $DNSServers) {
# Do something with server
$server
}
带迭代的For循环
或者通过循环中的索引,使用数组的Count
属性:
for ($i = 0; $i -lt $DNSServers.Count; $i++)
{
$DNSServers[$i]
}
管道
您还可以将对象管道化为For-Each,其简写符号为%
。循环中的每个元素都分配了内部变量$\ucode>:
$DNSServers | % {
# Do something with server ($_)
$_
}
这不是那么易读,但如果您只是编写一个一次性使用的快速脚本,它会很方便
提示:如果在Powershell ISE中按Ctrl+J,将显示snippets菜单,其中包含此处指定的两种类型的
循环语法的预构建。但是,要小心,因为的代码段从$i=1
开始,所以在与数组一起使用时需要更改它。确定数据类型
您编写的命令返回一个数组。您可以通过将其传递到Out GridView
来查看:
$DNSServers | Out-GridView
或检查类型:
$DNSServers.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
访问数据
可以通过索引访问阵列:
$DNSServers[0]
$DNSServers[1]
etc...
需要注意的是,数组索引从零开始,而不是从1开始
对于每个循环
在循环中:
ForEach ($server in $DNSServers) {
# Do something with server
$server
}
带迭代的For循环
或者通过循环中的索引,使用数组的Count
属性:
for ($i = 0; $i -lt $DNSServers.Count; $i++)
{
$DNSServers[$i]
}
管道
您还可以将对象管道化为For-Each,其简写符号为%
。循环中的每个元素都分配了内部变量$\ucode>:
$DNSServers | % {
# Do something with server ($_)
$_
}
这不是那么易读,但如果您只是编写一个一次性使用的快速脚本,它会很方便
提示:如果在Powershell ISE中按Ctrl+J,将显示snippets菜单,其中包含此处指定的两种类型的
循环语法的预构建。但是,要小心,因为
的代码段从$i=1
开始,所以在与数组一起使用时需要更改它。请尝试$DNSServers[0]
,$DNSServers[1]
等等!所以这真的很简单。正是需要的=)但是,@mjsqu,你在评论中给出了答案。没有办法把它标记为我一直在寻找的答案。我该怎么做?谢谢。根据mjsqu的评论回答您自己的问题。要点是什么?感谢您的认可,我现在提供了一个更详细的答案。请尝试$DNSServers[0]
,$DNSServers[1]
等等!所以这真的很简单。正是需要的=)但是,@mjsqu,你在评论中给出了答案。没有办法把它标记为我一直在寻找的答案。我该怎么做?谢谢。根据mjsqu的评论回答你自己的问题。要点是什么?谢谢你的认可,我现在已经包括了一个更详细的答案。