クラスというのは(また語弊があると言われそうですが…)、
プログラマが楽するために使うものです。例えば、
Car(車)
というクラスを作り、
Car.Speed = 50
Car.Run
とすると、50km/hで車が走ることにする。
Carというクラスの中身については、他の人に作らせるか、作って忘れるかで、
メンテナンスはなるべくやりたくない、それがクラスの肝です。
さて、本題です。PowerShellはスクリプト言語で、クラスと無関係そうですが、オブジェクト指向であり(ここがコマンドプロンプトやbashより進化している部分)、クラスも十分使えます。
今回は、設定ファイルの保存等に使うことを想定した、xmlファイルの作成・キー追加のクラスを作っていきます。
PowerShellコード↓
- class xmlFile
- {
- $newFile;
- # ->newFileNameにしてしまいそうだが、そこはオブジェクト志向で…
- xmlFile($setFileName){
- $this.newFile =New-Item $setFileName -type file -Force;
- Write-Output '<?xml version="1.0" encoding="UTF-8" ?>' | Add-Content $this.newFile -Force
- }
- add($key, $val){
- Write-Output "<$key>$val<⁄$key>" | Add-Content $this.newFile -Force
- }
- }
- $xf = New-Object xmlFile("$PSScriptRoot\test.xml");
- $xf.add("testKey1", "testVal1");
- $xf.add("testKey2", "testVal2");
↓出力(スクリプトと同じ場所に、test.xml)
※一応xmlのフォーマットに準じているので、他のプログラムのXMLパーサーが使える筈
1.クラスの宣言
class クラス名で宣言します。同名のメソッドが自動的にコンストラクタになります。ここではファイル名を指定すると、ファイルが新規作成されるようにしました。
2.メソッド
メソッドはaddのみ。重複キーの処理や、System.Xml.XmlWriterを使った書き込みもいいと思います。でも結構コードが煩雑になります。
3.クラスの使用
$変数 = New-Object クラス名 でクラスが生成されます。
4.その他
New-Itemは新たなファイルやディレクトリを作成する際に使います。
Write-Output をパイプで Add-Content に渡すと、ファイルにテキストを追記できます。この際、改行が自動的に入ることは便利ですが、意図しない場合は注意が必要です。

0 件のコメント:
コメントを投稿