The *write-xmas-tree.ps1* Script =========================== This PowerShell script writes a christmas tree to the terminal. Parameters ---------- ```powershell /home/markus/Repos/PowerShell/scripts/write-xmas-tree.ps1 [[-Size] ] [[-XPos] ] [[-colors] ] [[-Idx] ] [[-count] ] [[-duration] ] [] -Size Required? false Position? 1 Default value @(21,8,4) Accept pipeline input? false Accept wildcard characters? false -XPos tree height, trunk width, trunk height Required? false Position? 2 Default value 50 Accept pipeline input? false Accept wildcard characters? false -colors starting x position Required? false Position? 3 Default value @("blue", "green", "cyan", "red", "yellow", "magenta") Accept pipeline input? false Accept wildcard characters? false -Idx Required? false Position? 4 Default value (Get-Random -Min 0 -Max ($colors.Length-1)) Accept pipeline input? false Accept wildcard characters? false -count Required? false Position? 5 Default value 100 Accept pipeline input? false Accept wildcard characters? false -duration Required? false Position? 6 Default value 250 Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` Example ------- ```powershell PS> ./write-xmas-tree.ps1 ``` Notes ----- Author: Markus Fleschutz | License: CC0 Related Links ------------- https://github.com/fleschutz/PowerShell Script Content -------------- ```powershell <# .SYNOPSIS Writes a Xmas tree .DESCRIPTION This PowerShell script writes a christmas tree to the terminal. .EXAMPLE PS> ./write-xmas-tree.ps1 .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param( [array]$Size=@(21,8,4), # tree height, trunk width, trunk height [int]$XPos=50, # starting x position [array]$colors = @("blue", "green", "cyan", "red", "yellow", "magenta"), [int]$Idx = (Get-Random -Min 0 -Max ($colors.Length-1)), [int]$count = 100, [int]$duration = 250) # ms Clear-Host do { [console]::SetCursorPosition(0,0) Write-Host "`n`t`t`tMerry Christmas" -foregroundColor yellow Write-Host "`t`t`t &" -foregroundColor yellow Write-Host "`t`t`t Happy New Year" -foregroundColor yellow for ( $i=1; $i -le $Size[0]; $i++ ) { $line = " " * ($XPos - $i) + "*" * ($i * 2) $Idx = $Idx % $colors.Length Write-Host $line -foregroundColor $colors[$Idx] $Idx++ } for ( $j=1; $j -le $Size[2]; $j++ ){ $line = " " * ( $XPos - ( $Size[1] / 2 ) ) + "#" * $Size[1] Write-Host $line -foregroundColor DarkGreen } Start-Sleep -milliseconds $duration $count-- } while ($count -gt 0) ``` *(generated by convert-ps2md.ps1 as of 11/20/2024 11:52:02)*