我的代码有问题-我可以获取特定的MACadress并将其转换为字符串。问题是,在我的方法中,它需要使用一些非法字符:
$CurrMac = get-netadapter | Where {$_.name -Match "Ethernet 2"}
$CurrMacAddr = $CurrMac.MacAddress
out-string -inputobject $CurrMacAddr -outvariable CurrMac2
$CurrMac2 = $CurrMac2.Substring(0,$CurrMac2.Length-1)
所以,我的问题-还有其他方法可以提取字符串中没有特殊字符的名称为“ Ethernet 2”的适配器的mac地址吗?
答案 0 :(得分:2)
您不需要Out-String
-MacAddress
属性已经是一个字符串。
如果要替换-
字符,则可以使用String.Replace()
:
$CurrMacAddr = $CurrMac.MacAddress.Replace('-','')
或-replace
运算符:
$CurrMacAddr = $CurrMac.MacAddress -replace '-'
答案 1 :(得分:2)
使用基于.Where()
数组方法的PowerShell惯用PSv4 +解决方案来补充现有的有用答案,该方法比使用Where-Object
cmdlet更好:
PS> (Get-NetAdapter).Where({ $_.Name -match 'Ethernet 2'}).MacAddress -replace '-'
00B0362FF73A # e.g.
答案 2 :(得分:1)
$adapter = Get-NetAdapter | Where {$_.Name -Match "Ethernet 2"}
$result = $adapter.MacAddress.Replace("-", "")
答案 3 :(得分:0)
另一种方式
Get-NetAdapter
MacAddress
拆分为'-'(Get-NetAdapter 'Ethernet 2').MacAddress -split '-' -join ''