Microsoft Access에서 테이블을 가져와 PowerShell 의 Import-CSV
테이블처럼 보이게하려고합니다. 여기서 CSV 파일의 각 열은 속성이됩니다. 및 행의 항목이 속성 값이됩니다.'Import-CSV'와 같은 Powershell 사용자 정의 객체를 만들 수있는 방법
$ColumnCount = 0;
$contactObject = new-object PSObject;
if ($rs.RecordCount -ne 0) {
do {
$rs.MoveFirst()
$valueArray = @();
do {
foreach ($columnHeader in $rs.fields.item($ColumnCount).name) {
$value = $rs.Fields.Item($columnHeader).Value;
$valueArray += $value
}
$rs.MoveNext()
} until ($rs.EOF -eq $True)
$contactObject | Add-Member -MemberType NoteProperty -Name $columnHeader -Value $valueArray;
$ColumnCount++
} until ($ColumnCount -eq $rs.fields.count)
}
그리고이 출력 : 내가 했어 유일한 가까운 성공은 이것이다
EquipmentPackageID ElementID ArchitectureID Delete
------------------ --------- -------------- ------
{117, 117, 126, 126...} {32, 32, 32, 32...} {-1, 1, -1, 1...} {False, False, False, False...}
하지만 개별 배열을 원하지 않는다.
기본적으로 모두 하나의 테이블이되고 싶습니다. 그리고이 함수는 다른 크기와 명명 된 테이블을 액세스 할 수 있어야합니다. 그래서이 4 열 테이블에 맞게 조정 된 사용자 지정 개체를 만들 수 없습니다.
또한$MyFiles = Get-ChildItem C:\Windows\ | ForEach-Object {
[pscustomobject]@{
Name = $_.Name;
FullName = $_.FullName;
CreationDate = $_.CreationTime.Date;
}
}
,이 패턴을 피하기 :
$Array = @()
$x | ForEach-Object {
$Record = [...]
$Array += $Record
}
Basic .NET에서 배열의 크기를 조정할 수 없습니다
코드를 밖으로 뒤집어 데이터베이스의 각 레코드에서 하나의 사용자 지정 개체를 만든 다음 배열에 사용자 지정 개체를 추가해보십시오. –
나는 그걸 시도 해봤습니다. 각 값에 대해 add-member를 반복 한 다음 함께 추가하십시오.그리고 그것은 작동하기 시작한 것 같지만 ** 오류가 발생합니다 : "add-member : 이름이"Delete "인 멤버를 추가 할 수 없습니다. 그 이름을 가진 멤버가 이미 존재하기 때문에 멤버를 덮어 쓰려면 명령에 매개 변수를 강제하십시오. "** 그리고 만약 내가 추가하면 -force는 여전히 작동하지 않습니다. 그러나 첫 번째 기록을 위해 멋진 테이블을 출력합니다. – matt