Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell命令或代码,以了解脚本执行是否已停止_Powershell - Fatal编程技术网

PowerShell命令或代码,以了解脚本执行是否已停止

PowerShell命令或代码,以了解脚本执行是否已停止,powershell,Powershell,我有一个PowerShell脚本。它包含将文件从文件系统迁移到某个云共享的逻辑。在脚本执行结束时,即迁移结束时,我将日志导出到csv文件,该文件包含数据,如文件迁移是否有错误 现在,迁移工程师可能会使用ctrl+Break或Shift+F5手动停止脚本,或者脚本由于某些严重错误而终止 由于myPowerShell代码在成功执行结束时生成了一个csv文件,因此介于两者之间的中断不会创建任何日志文件 因此,我正在搜索一个PowerShell命令或代码段,它告诉我们代码执行已停止。然后我们导出日志文件

我有一个
PowerShell
脚本。它包含将文件从文件系统迁移到某个云共享的逻辑。在脚本执行结束时,即迁移结束时,我将日志导出到csv文件,该文件包含数据,如文件迁移是否有错误

现在,迁移工程师可能会使用
ctrl+Break
Shift+F5
手动停止脚本,或者脚本由于某些严重错误而终止

由于my
PowerShell
代码在成功执行结束时生成了一个
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}