型付きプロパティの定義まで出来ると他の言語と同じ様に使えます
ソースコードからテーブル等の設計書リバース生成を想定
CSV出力クラス定義
class CsvOutData
{
# プロパティ
[string] $PhysicalName
[string] $LogicalName
[string] $Detail
# コンストラクタ
CsvOutData([string]$ByPhysicalName,[string]$ByLogicalName,[string]$Detail){
$this.PhysicalName = $ByPhysicalName
$this.LogicalName = $ByLogicalName
$this.Detail = $Detail
}
}
CSV出力クラス配列の定義
$CsvOutDataList = New-Object System.Collections.ArrayList
リストに値追加
二つのデータを追加する例
実際はソースコード等から抽出した情報をコンストラクタに引数として渡します
$CsvOutDataList.Add((New-Object CsvOutData("datamodel1","☆☆表","〇〇に依存")))
$CsvOutDataList.Add((New-Object CsvOutData("datamodel2","△△表","〇〇と□□に依存")))
値確認
これだけで値が出力される
$CsvOutDataList
CSVとして出力(TYPE情報あり)
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_TYPE情報ありカンマ区切り.csv"
CSVとして出力(UTF8、TYPE情報あり)
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_UTF8TYPE情報ありカンマ区切り.csv" -Encoding UTF8
CSVとして出力(UTF8、TYPE情報あり、タブ区切り)
タブ区切りにしたい時もある
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_UTF8TYPE情報ありタブ区切り.csv" -Encoding UTF8 -Delimiter "`t"
CSVとして出力(UTF8、TYPE情報なし、カンマ区切り)
TYPE情報いらない
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_UTF8TYPE情報なしカンマ区切り.csv" -Encoding UTF8 -NoTypeInformation
まとめ
# CSV出力クラス定義
class CsvOutData
{
# 内部データ
[string] $PhysicalName
[string] $LogicalName
[string] $Detail
# コンストラクタ(初期値のセット)
CsvOutData([string]$ByPhysicalName,[string]$ByLogicalName,[string]$Detail){
$this.PhysicalName = $ByPhysicalName
$this.LogicalName = $ByLogicalName
$this.Detail = $Detail
}
}
# CSV出力クラス配列の定義
$CsvOutDataList = New-Object System.Collections.ArrayList
# リストに値追加
$CsvOutDataList.Add((New-Object CsvOutData("datamodel1","☆☆表","〇〇に依存")))
$CsvOutDataList.Add((New-Object CsvOutData("datamodel2","△△表","〇〇と□□に依存")))
# 値確認
$CsvOutDataList
# CSVとして出力(TYPE情報あり)
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_TYPE情報ありカンマ区切り.csv"
# CSVとして出力(UTF8、TYPE情報あり)
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_UTF8TYPE情報ありカンマ区切り.csv" -Encoding UTF8
# CSVとして出力(UTF8、TYPE情報あり、タブ区切り)
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_UTF8TYPE情報ありタブ区切り.csv" -Encoding UTF8 -Delimiter "`t"
# CSVとして出力(UTF8、TYPE情報なし、カンマ区切り)
$CsvOutDataList | Export-Csv -Path "$HOME\Desktop\CSV出力_UTF8TYPE情報なしカンマ区切り.csv" -Encoding UTF8 -NoTypeInformation