Powershell中Finally语句用法示例
更新时间:2015年03月25日 09:02:15 投稿:junjie
这篇文章主要介绍了Powershell中Finally语句用法示例,本文用一个播放音乐的脚本为例子,使用Finally语句在异常结束操作时执行清理操作,需要的朋友可以参考下
在之前的小技巧中,我们曾经引入过,一个有声的进度条。在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来终止,此时脚本运行立马结束。最后一行的$player.Stop()来不及执行,提示声音仍旧在余音绕梁,三日不绝。
解决办法,将最后一句收尾工作的$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()
}
相关文章
PowerShell中查看当前版本、Windows版本、.NET版本信息的代码
这篇文章主要介绍了PowerShell中查看当前版本、Windows版本、.NET版本信息的代码,需要的朋友可以参考下2014-08-08PowerShell函数中把参数传入另一个函数的函数传参例子
这篇文章主要介绍了PowerShell函数中把参数传入另一个函数例子也是使用的PSBoundParameters,但是有区别哦,,需要的朋友可以参考下2014-07-07PowerShell正则表达式(Regex)从右往左进行匹配方法代码实例
这篇文章主要介绍了PowerShell正则表达式(Regex)从右往左进行匹配方法代码实例,最重要的就是一个RightToLeft参数的运用,本文直接给出代码实例,需要的朋友可以参考下2015-05-05
最新评论