PowerShell命令或代码,以了解脚本执行是否已停止
我有一个PowerShell命令或代码,以了解脚本执行是否已停止,powershell,Powershell,我有一个PowerShell脚本。它包含将文件从文件系统迁移到某个云共享的逻辑。在脚本执行结束时,即迁移结束时,我将日志导出到csv文件,该文件包含数据,如文件迁移是否有错误 现在,迁移工程师可能会使用ctrl+Break或Shift+F5手动停止脚本,或者脚本由于某些严重错误而终止 由于myPowerShell代码在成功执行结束时生成了一个csv文件,因此介于两者之间的中断不会创建任何日志文件 因此,我正在搜索一个PowerShell命令或代码段,它告诉我们代码执行已停止。然后我们导出日志文件
PowerShell
脚本。它包含将文件从文件系统迁移到某个云共享的逻辑。在脚本执行结束时,即迁移结束时,我将日志导出到csv文件,该文件包含数据,如文件迁移是否有错误
现在,迁移工程师可能会使用ctrl+Break
或Shift+F5
手动停止脚本,或者脚本由于某些严重错误而终止
由于myPowerShell
代码在成功执行结束时生成了一个csv
文件,因此介于两者之间的中断不会创建任何日志文件
因此,我正在搜索一个
PowerShell
命令或代码段,它告诉我们代码执行已停止。然后我们导出日志文件不确定您真正的问题是什么。也许你可以把代码贴在这里。你可以加上
$ErrorActionPreference = 'Stop'
在脚本开始时,遇到错误时将停止脚本
尝试使用Try/Catch语句进行正确的错误处理
使用Try/Catch/Finally
在Finally块中放入要通知脚本退出的代码
试试这个:
Try { while (1) {$i++} }
Catch{ Write-Host 'Catch block ran' }
Finally{Write-host 'Finally block ran'}
请注意,如果使用Ctrl+C中止脚本,Catch块不会运行,但Finally块会运行
Catch块仅在出现错误时运行。即使使用Ctrl+C中止脚本,Finally块始终运行
因此:
如果脚本在Try块期间中止,则将导出日志文件
如果在导出时按Ctrl+C,您可能仍会丢失一些日志数据
确保获得所有日志数据的最佳方法是在日志事件发生时将其写入磁盘
Try {#your script here}
Catch {}
Finally {#Export log file}