powershell-尝试使用拆分方法来隔离数字“;50“;从返回的值;免费:50“;

powershell-尝试使用拆分方法来隔离数字“;50“;从返回的值;免费:50“;,powershell,dhcp,Powershell,Dhcp,我希望我的问题不会因为违反了一些规则而激怒老年退休金计划……当然不是我的本意 我已在Windows Server 2012 r2中安装DHCP角色。之后,我使用Powershell设置了一个作用域: Add-DhcpServerv4Scope -name "ambito1" -StartRange 10.0.0.1 -EndRange 10.0.0.50 -SubnetMask 255.255.255.0 最后,我想做的是编写一个脚本,要求用户插入一个在作用域范围内的IP地址,该地址将通过与

我希望我的问题不会因为违反了一些规则而激怒老年退休金计划……当然不是我的本意

我已在Windows Server 2012 r2中安装DHCP角色。之后,我使用Powershell设置了一个作用域:

Add-DhcpServerv4Scope -name "ambito1" -StartRange 10.0.0.1 -EndRange 10.0.0.50  -SubnetMask 255.255.255.0
最后,我想做的是编写一个脚本,要求用户插入一个在作用域范围内的IP地址,该地址将通过与Get-DhcpServerv4FreeIPAddress cmdlet返回的IP地址进行比较来检查其可用性

为了实现这一点,我首先需要知道作用域内的免费ip总数(为了简化,我将保持作用域内的所有ip可用),然后将该数字传递给Get-DhcpServerv4FreeIPAddress cmdlet的-NumAddress参数,因此,我可以将用户选择的ip与返回的可用ip列表中相应的ip进行匹配

所以如果我写:

Get-DhcpServerv4ScopeStatistics -ScopeId 10.0.0.0 | Select-Object Free | Format-List
它返回:

Free : 50
…这正是我想要的…但当我尝试自由拆分时,我的头痛就开始了:50是为了提取数字“50”并将其存储到一个变量中。我所做的是将管道Get-DhcpServerv4ScopeStatistics-ScopeId 10.0.0.0 | Select Object Free | Format List的结果存储到一个变量中,并尝试使用split作为方法或运算符,最终从“Free:50”中获取我的“50”,但到目前为止,这已被证明是不可能的

例如,写作:

$a=Get-DhcpServerv4ScopeStatistics -ScopeId 10.0.0.0 | Select-Object Free | Format-List

$a.Split(" : ")
返回:

Microsoft.Powershell.Commands.Internal.Format.FormatStartData
Microsoft.Powershell.Commands.Internal.Format.GroupStartData
Microsoft.Powershell.Commands.Internal.Format.FormatEntryData
Microsoft.Powershell.Commands.Internal.Format.GroupEndData
Microsoft.Powershell.Commands.Internal.Format.FormatEndData
而不是:

Free

50
p.D.我从其他人那里得到了一个可行的备选脚本,但它有一个稍微不同的方法,我下定决心让我的方法发挥作用(即使用split)


任何帮助都将不胜感激。提前谢谢

尝试以下操作以获得所需的值:

Get-DhcpServerv4ScopeStatistics -ScopeId 10.0.0.0 | Select-Object -Expand Free

当您想要处理输出时,不要使用
格式列表

您只需在命令上使用点符号即可访问属性:

(Get-DhcpServerv4ScopeStatistics -ScopeId 10.0.0.0).Free
还可以将结果存储在变量中,并使用点表示法获取存储结果的属性:

$a=Get-DhcpServerv4ScopeStatistics -ScopeId 10.0.0.0 
$a.Free

当pipelive中有多个对象时,点符号在版本3之前的Powershell上不起作用,在这种情况下,您需要使用manojlds的
-Expand
解决方案。

您在眨眼之间就实现了我在5个半小时内无法实现的目标…非常感谢!!如果manojlds答案解决了您的问题,请在答案的左侧用绿色复选标记。欢迎来到SO@GuiriWow…这对我来说肯定是新鲜事。谢谢