2016-06-26 3 views
1

내 보낸 텍스트를 CSV로 변환하여 powershell에서 객체로 사용할 수있는 방법은 무엇입니까? 예 :powershell에서 문자열을 표 또는 객체로 변환하는 방법

where{$_.qlimit -eq 27} 

텍스트 :

samid   qlimit qused 
    Administrator -1  0  
    Guest   -1  0  
    admin   27  8  
    krbtgt   -1  0  
    r    -1  0  
    admin2   44  0 
+0

지금 내가 마지막 편집 실제 입력 데이터를 반영하지 않는 생각을 : – sodawillow

답변

2

이 파일을로드 할 Get-Content cmdlet를 사용하여 쉼표로 두 개 이상의 공백을 교체하고 ConvertFrom-Csv cmdlet을 사용하여 CSV로 변환 :

$object = (Get-Content 'your_file').Trim() -replace '\s{2,}', ',' | ConvertFrom-Csv 

개체를 쿼리하면

(210)

당신은 원하는 출력을 얻을 :

samid qlimit qused 
----- ------ ----- 
admin 27  8  
+0

아니요 아래 오류가 발생합니다 .. PS C : \ Users \ Administrator> $ object = (Get-Content c : \ temp.txt) -replace '\ s {2,}', ','| ConvertFrom-Csv ConvertFrom-Csv : 인수 "name"의 값이 유효하지 않으므로 인수를 처리 할 수 ​​없습니다. "name"인수의 값을 변경하고 작업을 다시 실행하십시오. 줄에 : 1 문자 : 77 + $ object = (Get-Content c : \ temp.txt) -replace '\ s {2,}', ','| ConvertFrom-Csv <<<< + CategoryInfo : InvalidArgument :(:) [ConvertFrom-Csv], PSArgumentException + FullyQualifiedErrorId : 인수, Microsoft.PowerShell.Commands.ConvertFromCsvCommand – vinu

+0

이 문제를 재현 할 수 없습니다. 텍스트 파일을 업로드 할 수 있습니까? –

+0

http://s000.tinyupload.com/?file_id=42970264715517322509 – vinu

0

은 ConvertFrom 문자열을 가진 또 다른 방법 (파일의 헤더없이) :

(Get-Content 'your_file').trim() | ConvertFrom-String -PropertyNames samid,qlimit,qused 
관련 문제