2017-03-31 3 views
1

을 파워 쉘의 선택-Object cmdlet으로 여기선택 객체에게 PowerShell을 내가 궁금하네요

를 사용하는 경우 문자열을 사용하는 방법이있는 경우 사용하는 경우 문자열을 사용하는 방법 내가 할 노력하고있어의 예입니다

$sapFile = "C:\MyFile*.XML" 

# Get the newest xml file 
$newestFile = Get-ChildItem -Path $sapFile | Sort CreationTime | Select -Last 1 

# get the contents of the xml file 
[XML]$sapContent = Get-Content -Path $newestFile.FullName 

$sapContent.DATA.CP | Select -Property CP_NO,MEN.Substring(0,4) 

그러나 이것은 작동하지 않습니다.

감사

답변

3

당신은 해시 테이블을 사용하여 계산 된 값을 가지고 Select를 사용하여 즉석에서 속성을 만들 수 있습니다. 다음 예제에서는 'CP_NO'속성을 선택하고 해시 테이블을 사용하여 'MENSubString'속성을 만듭니다.

Select -Property CP_NO,@{l='MENSubString';e={$_.MEN.Substring(0,4)}} 
+0

감사합니다, 그 매력처럼 작동 –

0

다른 방법 :

Select -Property CP_NO,@{label='MENSubString';expression={$_.MEN.Substring(0,4)}} 

라벨은 같을 것이다, 이는 단지 'E'로 단축 할 수 단지 'L'과 표현에 단축 할 수

$sapContent.DATA.CP | foreach { 
     [pscustomobject]@{ 
     CP_NO=$_.CP_NO 
     PartOfMen=MEN.Substring(0,4)   
     } 
     }