在之前的小技巧中,我们曾经引入过,一个有声的进度条。在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() }
本文向大家介绍C#异常处理中try和catch语句及finally语句的用法示例,包括了C#异常处理中try和catch语句及finally语句的用法示例的使用技巧和注意事项,需要的朋友参考一下 使用 try/catch 处理异常 try-catch 块的用途是捕捉和处理工作代码所生成的异常。 有些异常可以在 catch 块中处理,解决问题后不会再次引发异常;但更多情况下,您唯一能做的是确保引发适
在实际开发中,根据 try catch 语句的执行过程,try 语句块和 catch 语句块有可能不被完全执行,而有些处理代码则要求必须执行。例如,程序在 try 块里打开了一些物理资源(如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显式回收。 Java的垃圾回收机制不会回收任何物理资源,垃圾回收机制只回收堆内存中对象所占用的内存。 所以为了确保一定能回收 try 块中打开的物理资源,异
Python的语句是否有等价物,类似于它的语句?这可以让我们简化这一点: 为此: 其中只有在满足条件并运行其“do东西”后才会被调用?相反,如果不满足条件,代码将不会被运行。 我不想滔滔不绝地说亵渎,但我能描述它的最好方式是在每一块“做事情”的末尾都有一个<code>GOTO。 本质上,它与< code>else语句相反。虽然< code>else仅在不满足其他条件时运行,但它仅在满足另一个条件时
本文向大家介绍PowerShell中使用return语句退出函数例子,包括了PowerShell中使用return语句退出函数例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,可以使用return语句来退出函数,同时return语句也可以返回值给函数的调用者。 使用return语句来直接退出函数。看一个退出函数的例子: 上面这个Get-NamedProces
本文向大家介绍说明PowerShell中的Try / Catch / Finally块,包括了说明PowerShell中的Try / Catch / Finally块的使用技巧和注意事项,需要的朋友参考一下 PowerShell中的Try / Catch块用于处理脚本中产生的错误。具体而言,错误应该是终止错误。在最后在PowerShell中块不是强制性的,每次沿写try / catch语句,但它会
(在本例中,假设是的有效索引,并且代码不会引发) 编辑:问题不是关于使用的必要性,而是关于我选择这样做时在性能上的任何收益或损失。没有它,就会创建一个变量。使用它,返回的值被存储在其他地方,也许是以一种更有效的方式。