PowerShell 誰得?!エディタ風にコンソール出力しろ!
やぁ、こんばんは。
俺は今日もPowerShellライフを楽しんでいる。
しかし、たまには誰得?!な
何の役にも立たないスクリプトを作って遊ぶのも一興だゼ!
遊びの内容はこうだ。
PowerShellのスクリプトファイルの内容をコンソール出力する。
で、以下の2点で遊ぶ。
以上。
では、遊ぶ!
低スペックなエディタ風に出力する遊び
#--------------------------------------
# 低スペックなエディタ風に出力する遊び
#--------------------------------------
$file = Read-Host "ファイル指定"
Write-Host ""
[int]$i = 0
ForEach($line in gc $file){
#行番号インクリメント
$i++
#判定用文字列、出力用文字列の作成
$chkStr = $line.Trim()
$outLine = ([string]$i).PadLeft(4,"0") + ":" + $line
#空白行
If($chkStr.Length -eq 0){
Write-Host $outLine
Continue
}
#先頭1文字:"#"
If($chkStr.SubString(0,1) -eq "#"){
Write-Host $outLine -ForegroundColor Green
Continue
}
#上記以外
Write-Host $outLine
}
Write-Host ""
Read-Host "×ボタンで終了!"
このスクリプト自身を出力してみた。 このスクリプトの核となるのは、Get-Contentコマンドレット(エイリアス:gc)だ。
このコマンドレットで取得したテキストの全行に、ForEachステートメントをブチかまして各行の判定をしていく。 ForEachステートメントの中でやることは以下の通りだ。
1.判定専用の文字列を作成する。ただし、各行のインデントが判定の邪魔になるので、空白除去(StringクラスのTrimメソッド使用)をかます。
2.遊びの内容である行番号付きの文字列を作成する。見た目を良くするために、行番号の前ゼロ補完(StringクラスのPadLeftメソッド使用)をする。行番号用変数の$iの型変換も重要だ。
3.空白行なら、色はノーマル出力。
4.先頭1文字目が#なら、色は緑色出力!
5.上記以外なら、色はノーマル出力!
2.遊びの内容である行番号付きの文字列を作成する。見た目を良くするために、行番号の前ゼロ補完(StringクラスのPadLeftメソッド使用)をする。行番号用変数の$iの型変換も重要だ。
3.空白行なら、色はノーマル出力。
4.先頭1文字目が#なら、色は緑色出力!
5.上記以外なら、色はノーマル出力!
注意すべきは、処理中に該当行がヒットしたら、Continueを使って、次のループに飛ぶことだ。
遊び終了!
ふっ、まったくマジで誰得だったゼ。
PowerShell、イエーイ!
ロリポップ!レンタルサーバー!はあなたの「やってみたい!」を応援します!
ロリポップ!なら、ホームページ、ブログ、ネットショップ…
これらが今すぐ、そして簡単にできちゃう!
マニュアルやライブチャットを完備しているので、ホームページ初心者でも安心。
これだけついてるのに月額100円(税抜)~ととってもお得。
もちろん無料のお試し期間も10日間あるので安心ですね。
▼ロリポップ!レンタルサーバーはこちら