이 문제를 해결하는 데 도움이 필요합니다. 스크립트에서 추가로 사용하려면 MySQL DB에서 테이블 데이터를 가져와야합니다. MySQL 데이터에 액세스하기 위해이 코드를 사용하고 있습니다.
[void][System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\MySQL\MySQL Connector Net 6.7.4\Assemblies\v2.0\MySql.Data.dll")
$Connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$Connection.ConnectionString = $ConnectionString
$Connection.Open()
$Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection)
$DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command)
$DataSet = New-Object System.Data.DataSet
$RecordCount = $dataAdapter.Fill($dataSet,"data") | Out-Null
$Command.Dispose()
$Table=$DataSet.Tables["data"] | FT -auto
$Connection.Close()
$Table
그리고 그것은 나에게 소중한 쓰레기를줍니다.
TASKID TASKTYPE fistNAME secNAME STATUS ------ -------- -------- ------- ------ 1111 1 Dep1 0 2222 2 User321 Dep1 0
그러나 예를 들어 결과를 CSV로 내보내려고 할 때 :
Export-Csv -Path "c:\test.csv" -InputObject $Table
내가 얻는 것은 :
#TYPE System.Object [] "Count", "Length", "LongLength", "Rank", "SyncRoot", "IsReadOnly", "IsFixedSize", "IsSynchronized" "6", "6", "6", "1", "System.Object []", "False", "True", "False"
그래서 다음과 같이 변수의 데이터를 구문 분석하려고 할 때 :
Write-Host $Table
foreach ($Task in $Table) {
Write-Host $Task.TASKID
}
내가 얻는 것은 :
Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands. Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
누구든지이 문제를 해결하도록 도와 줄 수 있습니까?
이 라인
$Table=$DataSet.Tables["data"] | FT -auto
데이터를 FormatStartData
객체 배열로 변환합니다 .
데이터 Format-Table
를 내보낼 때 데이터를 파이프하지 마십시오 . 대신 이것을 시도하십시오.
$DataSet.Tables["data"] | Export-Csv "c:\test.csv"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다