In Command Prompt, I'd throw the following into an iterated loop:
choice /c:abcdefghijklmnopqrstuvwxyz1234567890 /n /t:1 /d:0
sleep 1
In Unix, I'd use: read -t 5 $input
.
Does anyone know a way to do it in Powershell? Right now, I just wait it out (last line below).
I've set my script to switch between the TV and PC for my wife. I print a before and after for my wife and I'd like to bypass it for myself.
Here is my current script for context:
$file_location = "C:\Users\krmar_000\Documents\audio.out"
$current = gc $file_location
Write-Host "Current Audio output: " -ForegroundColor White -NoNewline
Write-Host $current -ForegroundColor Red
Write-Host "Changing..." -ForegroundColor Yellow
if ( $current -eq "Speakers” )
{
nircmd.exe mutesysvolume 0
nircmd.exe setsysvolume 65535
nircmd.exe setdefaultsounddevice “AMD HDMI Output”
"AMD HDMI Output" | Out-File -filepath $file_location
# [System.Windows.Forms.MessageBox]::Show("TV Speakers enabled","Speaker Flip")
Write-Host "TV Speakers enabled" -ForegroundColor Green
}
elseif ( $current -eq "AMD HDMI Output” )
{
nircmd.exe mutesysvolume 0
nircmd.exe setsysvolume 52428
nircmd.exe setdefaultsounddevice “Headset”
"Speakers" | Out-File -filepath $file_location
# [System.Windows.Forms.MessageBox]::Show("Headset Speakers enabled","Speaker Flip")
Write-Host "Headset Speakers enabled" -ForegroundColor Green
}
else
{
nircmd.exe setdefaultsounddevice “Speakers”
"Speakers" | Out-File -filepath $file_location
# [System.Windows.Forms.MessageBox]::Show("Headset Speakers enabled","Speaker Flip")
Write-Host "Headset Speakers enabled" -ForegroundColor Green
}
Start-Sleep -Seconds 5