Powershell中Finally語句用法示例
在之前的小技巧中,我們曾經(jīng)引入過,一個有聲的進度條。在PowerShell正在做某項忙碌的任務時,可以一直讓它播放某段音樂。代碼如下:
# 在windows 文件夾下面找到要給可用的wav音頻文件
$WAVPath = Get-ChildItem -Path $env:windir -Filter *.wav -Recurse -ErrorAction SilentlyContinue |
Select-Object -First 1 -ExpandProperty FullName
# 加載并播放
$player = New-Object Media.SoundPlayer $WAVPath
$player.PlayLooping()
1..100 | ForEach-Object {
Write-Progress -Activity 'Doing Something. Hang in' -Status $_ -PercentComplete $_
Start-Sleep -MilliSeconds (Get-Random -Minimum 300 -Maximum 1300)
}
$player.Stop()
腳本本來運行正常,但是當你終止了它,比如使用ctrl+C來終止,此時腳本運行立馬結(jié)束。最后一行的$player.Stop()來不及執(zhí)行,提示聲音仍舊在余音繞梁,三日不絕。
解決辦法,將最后一句收尾工作的$player.Stop()放在Finally語句中:
# 在Windows文件夾找到Wav音頻問
$WAVPath = Get-ChildItem -Path $env:windir -Filter *.wav -Recurse -ErrorActionSilentlyContinue |
Select-Object -First 1 -ExpandProperty FullName
# 加載并播放
$player = New-Object Media.SoundPlayer $WAVPath
try
{
$player.PlayLooping()
1..100 | ForEach-Object {
Write-Progress -Activity 'Doing Something' -Status $_ -PercentComplete $_
Start-Sleep -MilliSeconds (Get-Random -Minimum 300 -Maximum 1300)
}
}
finally
{
$player.Stop()
}
相關(guān)文章
PowerShell中查看當前版本、Windows版本、.NET版本信息的代碼
這篇文章主要介紹了PowerShell中查看當前版本、Windows版本、.NET版本信息的代碼,需要的朋友可以參考下2014-08-08PowerShell腳本實現(xiàn)添加、修改任務計劃的例子
這篇文章主要介紹了PowerShell腳本實現(xiàn)添加、修改任務計劃的例子,PowerShell操作、設置任務計劃實例,需要的朋友可以參考下2014-08-08PowerShell實現(xiàn)查詢打開某個文件的默認應用程序
這篇文章主要介紹了PowerShell實現(xiàn)查詢打開某個文件的默認應用程序,本文通過C#調(diào)用Windows API來實現(xiàn)這個需求,需要的朋友可以參考下2015-06-06PowerShell函數(shù)中把參數(shù)傳入另一個函數(shù)的函數(shù)傳參例子
這篇文章主要介紹了PowerShell函數(shù)中把參數(shù)傳入另一個函數(shù)例子也是使用的PSBoundParameters,但是有區(qū)別哦,,需要的朋友可以參考下2014-07-07PowerShell正則表達式(Regex)從右往左進行匹配方法代碼實例
這篇文章主要介紹了PowerShell正則表達式(Regex)從右往左進行匹配方法代碼實例,最重要的就是一個RightToLeft參數(shù)的運用,本文直接給出代碼實例,需要的朋友可以參考下2015-05-05PowerShell快速創(chuàng)建一個指定大小文件的實例分享
這篇文章主要介紹了PowerShell快速創(chuàng)建一個指定大小文件的實例分享,需要的朋友可以參考下2014-04-04