Powershell中Finally语句用法示例_PowerShell

在之前的小技巧中,我们曾经引入过,一个有声的进度条。在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()
}

时间: 2025-01-30 12:03:03

Powershell中Finally语句用法示例_PowerShell的相关文章

PowerShell中的函数重载示例_PowerShell

在PowerShell中,我们可以使用Function关键字来定义一个函数,比如: Function Get-Data { Param ( [int] $data = -1 ) return $data; } 这个名为Get-Data的函数接收一个int类型的参数$data,直接将其返回.那么,我同时还需要一个接收string类型的Get-Data函数怎么办?方法比较奇怪,至少和传统的C++之类的语言不同. 在PowerShell中定义重载函数,需要指定参数所属的Parameter Set,如下

PowerShell中实现混淆密码示例_PowerShell

适用于PowerShell 3.0或者更高版本, 尽管我们并不推荐将密码硬编码在脚本文件中,但是仍旧有一些场景非如此不可.与将密码以一种纯文本的方式硬编码相比,我们还可以稍微花点心思,把密码混淆一下.虽然混淆密码是一种非常低级的保护方式,但是对于不懂PowerShell的人来讲,还是比较神秘的. 接下来的脚本会向用户询问用户名和密码,然后删除通过混淆脚本进行处理,产生用户凭据对象. 当你运行了下面的脚本以后,用户凭据已经被保存在$cred.接下来你几乎可以在任何带有–Credential参数的命

jQuery中$.fn的用法示例介绍

jQuery中$.fn的用法示例介绍 $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了. 那么你可以这样子:$("#div").abc();  jQuery为开发插件提拱了两个方法,分别是:  jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法. jQuery.fn

Javascript中With语句用法实例

  本文实例讲述了Javascript中With语句用法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&qu

python中pass语句用法实例分析

  这篇文章主要介绍了python中pass语句用法,对比C++程序实例分析了pass语句的使用方法,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python中pass语句用法.分享给大家供大家参考.具体分析如下: 1.空语句 do nothing 2.保证格式完整 3.保证语义完整 4.以if语句为例: C/C++中写法: ? 1 2 3 4 if(true) ; // do nothing else {} // do nothing python中写法: ? 1 2 3 4 i

Javascript中With语句用法实例_javascript技巧

本文实例讲述了Javascript中With语句用法.分享给大家供大家参考.具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>With语句(类似于VB中的)</title>

thinkPHP模板中for循环与switch语句用法示例_php实例

本文实例讲述了thinkPHP模板中for循环与switch语句用法.分享给大家供大家参考,具体如下: 1.for用法 <for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" > </for> 案例 <for start="1" end="100"> {$i}

php中switch语句用法详解_php技巧

本文介绍php中的switch语句的用法,它跟其他语句中的switch用法差不多的,但注意有有一个break语句. PHP中switch语句的标准语法: switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break; default: code to be exe

asp中Split的用法示例

示例|split 大家有没有碰到过要想取一字符串里的某些值而无从下手?有没有觉得看书或教材对split的写法糊里糊涂--如果有此疑问的话,请看下面我对例子的解释,相信您会对这个有一定的了解. 例如我想取得一个ftp里的用户名及密码(服务器等)值(用IE当FTP时或从表中取出FTP的值).下面是我的解决思路:设url为收到的URL值,这里指:url=ftp://username:password@server,请注意这句暗墓媛?br>我想大家都看清楚这个URL里的规律了吧,就是各个部分都被"