この記事はPowerShell Advent Calendar 2013の20日目の記事です!
▼ PSAC2013.ps1
function Twinkle-Star { [CmdletBinding(DefaultParameterSetName="p1")] param( [Parameter(Position=1,Mandatory=$true,ParameterSetName="p1")] [string]$Aa, [Parameter(Position=2,ParameterSetName="p1")] [int]$Interval=1, [Parameter(Position=3,ParameterSetName="p1")] [int]$Twinkle=10, [Parameter()] [Alias("V")] [char]$Value="★" ) begin { if ($Host.Name -ne 'ConsoleHost') { Write-Host -ForegroundColor Red "$($Host.Name) では実行できません><" $path = &{ $myInvocation.ScriptName} $param = "-Aa `"`"`"$Aa`"`"`" -Interval $Interval -Twinkle $Twinkle -Value $Value" Start-Process powershell -ArgumentList "Import-Module $path; Twinkle-Star $param; Read-Host" exit -1 } Clear-Host } process { #▼ $Value(★)の位置を取得 $Aa.ToCharArray() | ForEach-Object -Begin {$obj = @()} -Process { Write-Host -NoNewline $_ if ($_ -eq $Value) { $x = $Host.UI.RawUI.CursorPosition.X-2 $y = $Host.UI.RawUI.CursorPosition.Y $obj += [pscustomobject]@{x=$x; y=$y} } elseif ($_ -eq "☆") { Write-Host -NoNewline `b`b$_ -ForegroundColor Yellow #☆の色 } } #▼ カーソルの移動 function Move-Cursor([int]$x, [int]$y) { $coordinate = New-Object System.Management.Automation.Host.Coordinates($x, $y) $Host.UI.RawUI.CursorPosition = $coordinate } #▼ $Value(★)の色を変更 function Change-Color() { $obj | ForEach-Object { $random = $(Get-Random -Minimum 0 -Maximum 15) $color = [ConsoleColor]::GetNames([System.ConsoleColor])[$random] Move-Cursor $_.x $_.y Write-Host -NoNewline $Value -ForegroundColor $color } Move-Cursor 0 19 Start-Sleep $interval } #▼ $Twinkle(10)回キラキラ>< 1..$Twinkle | ForEach-Object { Change-Color } } end { Write-Host "`t`tMerry Chirstmas!!`t`t`n" -ForegroundColor Red -BackgroundColor DarkGreen Start-Sleep 5 } } <# #▼ コマンド構文 Twinkle-Star [-Aa] [[-Interval] [-Twinkle] ] [-Value ] #▼ パラメータ -Aa:アスキーアート。 -Interval:キラキラの間隔秒数。デフォルト1秒。 -Twinkle:キラキラする回数。デフォルト10回。 -Value:キラキラする文字。デフォルト★。 #>
▼ powershell.exe
Import-Module .\PSAC2013.ps1 -Force $christmasTree = @" `t + ・ + ゚。:。゚ + * ・‥☆‥・ + 。゚▲゚。 * + ▲▲ ▲▲★ + * ▲★彡▲ * 十 ★彡▲▲★ 彡▲▲★∴▲ 十 ▲▲★∴▲▲★ ▲★∴▲▲★彡▲ ★∴▲▲★彡▲▲★ ▲▲▲★彡▲▲★∴▲ ┃┃ ■■■■ ■■■ ■■■ `t "@ Twinkle-Star -Aa $christmasTree #-Interval 1 -Twinkle 10 -Value ★
▼ 参考サイト様
- オセロゲームを作ろう(7):盤面描画とカーソル移動(2) – PowerShell Memo
- PowerShell – 空の配列を使用する | ITLAB51.COM
- 拙著「【改訂新版】Windows PowerShell ポケットリファレンス」2/23発売のお知らせ – PowerShell Scripting Weblog<-p.79
- Capture console screen – Windows PowerShell Blog – Site Home – MSDN Blogs
- sabakanse @ ウィキ – 実行しているスクリプトのパスを取得 (PowerShell) – @ウィキモバイル
- GIFアニメ(アニメーション)作成 | 画像加工編集サイト・フリーソフト:無料写真加工ならバナー工房
「もう~いくつ寝ると~♪クリスマス~♪」ですね!
クリスマスは、朝から晩まで大好きなPowerShellタンとイチャイチャしたいと思います><
それはもう1日中イチャイチャです><とっても楽しみです><><><。
ではでは皆様、よいクリスマスを!
ご清覧ありがとうございました!!
コメント