2016-12-08 14 views
-1

XML値(MacID)の部分文字列を取得しようとしていますが、ここではMacIDの最後の4桁を使用したいのですが、その列を.csv私は輸出しています。 MacIDのうち、4文字の部分文字列を取得するにはどうすればよいですか?私はちょうどMacID.Substring(8,4)を使うことができると思っていたが、それはうまくいかない。何か案は?XML値からサブストリングを追加して列を追加する

$serverName = Get-Content C:\Temp\MPOS\MPOSServer.txt 
$xml = Get-Content C:\Temp\MPOS\DeviceConfig.xml 
$xmldata = [xml]$xml 
$MDATcsv = $xmldata.DeviceConfig.ChildNodes | 
      Select @{Name="ServerName"; Expression={ $serverName }}, RegisterID, MacID | 
      Export-Csv -Path D:\Reports\MPOS\MDATInfo.csv -NoTypeInformation -Append 
$MDATcsv 

、ここでは、参照用のXMLファイルのビットである:ここで

私はコードのビットを参照していますされ

<?xml version="1.0" encoding="utf-8"?> 
<DeviceConfig> 
    <Device RegisterID="1129" MacID="A4313596AEDD" /> 
    <Device RegisterID="1123" MacID="E425E7960663" /> 
    <Device RegisterID="1132" MacID="E425E7960666" /> 
    <Device RegisterID="1120" MacID="E425E796878A" /> 
    <Device RegisterID="1134" MacID="E425E7988992" /> 
    <Device RegisterID="1135" MacID="E425E798CBA6" /> 
    <Device RegisterID="1121" MacID="E425E79B3DD4" /> 
    <Device RegisterID="1127" MacID="E425E79BF845" /> 
    <Device RegisterID="1126" MacID="E425E79CD962" /> 
    <Device RegisterID="1112" MacID="E425E79DF316" /> 
</DeviceConfig> 

答えて

2

Substring(8, 4)が動作するはずですが、あなたはのためcalculated propertyを必要とします短縮された値を持つ別の列/フィールドを追加し、現在のオブジェクト($_.MacID)から元のプロパティを取得する必要があります。

最後の4つの文字を抽出するの

他の方法は、例えば

$_.MacID.Substring($_.MacID.Length - 4) 

または

-join $_.MacID[-4..-1] 
+0

はどうもありがとういます!計算されたプロパティを使用すると完全に機能しました。ご協力ありがとうございました。 – LilithGoddess

関連する問題