내보내기-CSV 내보내기 길이만 이름이 아님
파워셸에서 실행 중인 코드가 있습니다.export-csv 없이 실행하면 화면에 있는 모든 폴더 이름이 표시됩니다.
dir | select -expand fullname | % { ($_ -split '\')[7]
하지만 제가 덧붙이자면| export-csv c:\test.txt
그러면 화면에 보이는 것처럼 예상했던 폴더 이름이 아닌 다음과 같은 내용이 파일에 표시됩니다.
#TYPE System.String
"Length"
"13"
"18"
"20"
"22"
"29"
"21"
"24"
"11"
"17"
"20"
"20"
Export-Csv
개체 속성 및 해당 값의 테이블을 내보냅니다.스크립트가 문자열 개체를 생성하고, 문자열 개체가 가진 유일한 속성은 길이이기 때문에 이렇게 할 수 있습니다.
목록만 저장하려면 다음을 사용합니다.Out-File
또는Set-Content
대신에Export-Csv
.
이전 답변은 효과가 있지만, 누군가가 CSV 파일로 출력하려고 한다면 어떻게 될까요?
이것은 작동하지 않습니다.
$str_list = @('Mark','Henry','John')
$str_list | Export-Csv .\ExportStrList.csv -NoType
왜냐면Export-Csv
객체 및 출력 속성을 가져옵니다.String[ ]의 유일한 속성은 Length이므로 CSV 파일에는 Length만 포함됩니다.
이 문제를 해결하려면 String[ ]을 Object[]로 변경해야 합니다.가장 간단한 방법은 을 사용하는 것입니다.Select-Object
.
다음과 같이 각 문자열을 새 개체[]의 Name 속성에 넣습니다.
$str_list = @('Mark','Henry','John')
$obj_list = $str_list | Select-Object @{Name='Name';Expression={$_}}
$obj_list | Export-Csv .\ExportStrList.csv -NoType
다시 한 번 말씀드리자면,Select-Object
쉽게 조작할 수 있는 사용자 지정 PSO 개체를 출력합니다.이것은 매우 강력한 정보입니다. 현명하게 사용하세요.
이것은 저에게 효과가 있었습니다.
$data = @()
$row = New-Object PSObject
$row | Add-Member -MemberType NoteProperty -Name "name1" -Value "Test"
$row | Add-Member -MemberType NoteProperty -Name "name2" -Value 2
$data += $row
$data | Export-Csv "Text.csv" -NoTypeInformation
이 문제를 해결하는 또 다른 방법은 다음과 같습니다.
- 기본적으로 Out-File 출력
마스터 어레이 목록 정의
$MASTER_ARRAY_LIST = [System.Collections.ArrayList]@()
출력 파일 이름 정의
$OutputFilename="C:\TEMP\MyOutputFile.csv"
ForEach ( $Something in $List_of_Somethings) {
$CURRENT_RECORD_DETAILS = New-Object PSObject -Property @{'name'=$($Something.Name);'fullname'=$($Something.FullName);'id'=$($Something.ID)}
$MASTER_ARRAY_LIST.Add( $CURRENT_RECORD_DETAILS ) > $null
}
$MASTER_ARRAY_LIST.ToArray() | Select-Object -Property name,fullname,id | Export-Csv -Path $OutputFilename -NoTypeInformation
$test = @("test1","test2","test3")
$test | export-csv "firstTry.csv"
#We see that this fails. So here is how to to do it with the desired results
foreach ($item in $test) {
[ pscustomobject]@{ ResultColumn = $item } | Export-Csv -Path ./secondTry.csv -NoTypeInformation -Append
}
$output |Select-Object * | Export-Csv 'h:\filename.csv' -NoTypeInformation
언급URL : https://stackoverflow.com/questions/19450616/export-csv-exports-length-but-not-name
'programing' 카테고리의 다른 글
ASP.NET MVC3 부분 뷰 명명 규칙 (0) | 2023.08.22 |
---|---|
다대다 관계 예제 (0) | 2023.08.22 |
git 원격 분기 추가 (0) | 2023.08.22 |
Twitter 부트스트랩 - 탭 - URL이 변경되지 않음 (0) | 2023.08.22 |
Android, ListView 불법 상태 예외: "어댑터의 내용이 변경되었지만 ListView에서 알림을 받지 못했습니다." (0) | 2023.08.22 |