PoshCode Archive  Artifact [7be3664006]

Artifact 7be3664006abebf9cf9d9a89438bce650e2a598ae1227b5083737efdd2139f3d:

  • File Write-Typewriter.ps1 — part of check-in [cc48947346] at 2018-06-10 14:09:59 on branch trunk — Make write-host text appear as if it is being typed on a typewriter (user: Nathan Kasco size: 1361)

# encoding: ascii
# api: powershell
# title: Write-Typewriter
# description: Make write-host text appear as if it is being typed on a typewriter
# version: 1.0
# type: function
# author: Nathan Kasco
# license: CC0
# function: Type-Typewriter
# x-poshcode-id: 6191
# x-derived-from-id: 6192
# x-archived: 2016-05-17T10:48:18
# x-published: 2016-01-26T00:25:00
#
#
#Typewriter Text
function Type-Typewriter
{
<#
.Synopsis
   Make write-host text appear as if it is being typed on a typewriter
.DESCRIPTION
   Input text and if desired specify the write speed (25-250 milliseconds) for the text
.EXAMPLE
   Type-Typewriter "Hello world!"
.EXAMPLE
   Type-Typewriter "Hello world!" 250
.NOTES
   v1.0 - 2016-01-25 - Nathan Kasco
#>

    [CmdletBinding()]
    [Alias()]
    [OutputType([string])]

    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [alias("Name")]
        [string]
        $text,
        
        [Parameter(Mandatory=$false, Position=1)]
        [ValidateRange(25,250)]
        [int]
        $typeSpeed = 125
    )

    function sleep-host{
        Start-Sleep -Milliseconds $typeSpeed
    }

    #Cycle through letters
    $count = 0
    while($count -lt $text.Length){
        Write-Host $text.Chars($count) -NoNewline
        sleep-host
        $count++
    }
}