2021-09-27 10:38:12 +02:00
<#
2021-07-13 21:10:02 +02:00
. SYNOPSIS
write-typewriter . ps1 [ < text > ] [ < speed > ]
. DESCRIPTION
2021-09-25 19:43:22 +02:00
Writes the given text with the typewriter effect
2021-07-13 21:10:02 +02:00
. EXAMPLE
2021-09-25 19:43:22 +02:00
PS > . / write-typewriter " Hello World "
2021-08-29 17:50:03 +02:00
. NOTES
Author : Markus Fleschutz · License : CC0
2021-07-13 21:10:02 +02:00
. LINK
https : / / github . com / fleschutz / PowerShell
2020-12-29 15:14:21 +01:00
#>
2020-12-21 14:42:05 +01:00
2021-09-25 19:43:22 +02:00
param ( [ string ] $text = " `n Hello World `n ----------- `n PowerShell is cross-platform `n PowerShell is open-source `n PowerShell is easy to learn `n PowerShell is fully documented `n `n Thanks for watching `n `n :-) `n `n " , [ int ] $speed = 250 ) # in milliseconds
2020-12-21 14:42:05 +01:00
try {
$Random = New-Object System . Random
2021-09-25 19:43:22 +02:00
$text -split '' | ForEach-Object {
2020-12-29 15:14:21 +01:00
write-host -nonewline $_
2021-09-25 19:43:22 +02:00
start-sleep -milliseconds $ ( 1 + $Random . Next ( $speed ) )
2020-12-25 11:30:43 +01:00
}
2021-09-27 10:09:45 +02:00
exit 0 # success
2020-12-21 14:42:05 +01:00
} catch {
2021-09-16 20:19:10 +02:00
" ⚠️ Error: $( $Error [ 0 ] ) ( $( $MyInvocation . MyCommand . Name ) : $( $_ . InvocationInfo . ScriptLineNumber ) ) "
2020-12-21 14:42:05 +01:00
exit 1
}