or1ko's diary

日々を書きます

ConvertTo-*コマンドの動作

ConvertTo-で始まるPowerShellのコマンドはいくつかあるので、動作確認結果。
ConvertTo-Xmlはちょっとだけ期待はずれ。
最初はcsv

> ([PSCustomObject]@{id=1;name="Jhon"},[PSCustomObject]@{id=2;name="Tom"}) | ConvertTo-Csv
#TYPE System.Management.Automation.PSCustomObject
"id","name"
"1","Jhon"
"2","Tom"

次にjson

> ([PSCustomObject]@{id=1;name="Jhon"},[PSCustomObject]@{id=2;name="Tom"}) | ConvertTo-Json
[
    {
        "id":  1,
        "name":  "Jhon"
    },
    {
        "id":  2,
        "name":  "Tom"
    }
]

XML。デフォルトはxmlのオブジェクトになってしまうのでstringで出力。型情報も除去する。
Propertyでなく、idやnameにしたいが、方法は分からなかった。

> ([PSCustomObject]@{id=1;name="Jhon"},[PSCustomObject]@{id=2;name="Tom"}) | ConvertTo-Xml -As string -NoTypeInformation
<?xml version="1.0" encoding="utf-8"?>
<Objects>
  <Object>
    <Property Name="id">1</Property>
    <Property Name="name">Jhon</Property>
  </Object>
  <Object>
    <Property Name="id">2</Property>
    <Property Name="name">Tom</Property>
  </Object>
</Objects>

ちなみにHTMLは下記の通り。

> ([PSCustomObject]@{id=1;name="Jhon"},[PSCustomObject]@{id=2;name="Tom"}) | ConvertTo-Ht
ml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/><col/></colgroup>
<tr><th>id</th><th>name</th></tr>
<tr><td>1</td><td>Jhon</td></tr>
<tr><td>2</td><td>Tom</td></tr>
</table>
</body></html>