长时间运行的 Powershell 脚本冻结
我们正在使用长时间运行的 PowerShell 脚本来执行许多可能需要极长时间的小操作。大约 30 分钟后,脚本冻结了。我们能够通过按 Ctrl-C 使脚本重新开始运行,这会导致脚本恢复执行而不是终止进程。
是否存在某种脚本超时或机制可以防止 PowerShell 中长时间运行脚本?
We are using a long running PowerShell script to perform a lot of small operations that can take an extremely long amount of time. After about 30 minutes the scripts froze. We were able to get the scripts to start running again by pressing Ctrl-C
which caused the scripts to resume execution instead of killing the process.
Is there some sort of script timeout or mechanism that prevents long running scripts within PowerShell?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
由于我的坏习惯,我遇到了这个问题。如果您在控制台 powershell 中选择一点文本,脚本日志将冻结。确保启动大脚本后没有选择任何内容:)
I had this problem due to a bad habit I have. If you select a little bit of text inside a console powershell, scripts logs freeze. Make sure nothing is selected after launching a big script :)
如前所述,当在 powershell 控制台中单击/选择文本时,脚本会停止。您可以像这样禁用此行为:
右键单击标题栏
选择
属性
选择
选项
在
编辑选项
下,禁用快速编辑模式
注意:您将无法再从 powershell 窗口中选择文本。
Like mentioned, when clicking/selecting text in powershell console, the script stops. You can disable this behaviour like this:
Right-click the title bar
Select
Properties
Select
Options
Under
Edit Options
, disableQuickEdit Mode
Note: You won't be able to select text from powershell window anymore.
试试我的终止计时器脚本。只需将
$ScriptLocation
变量更改为您要运行的脚本即可。然后,该脚本将作为后台作业运行,同时当前窗口跟踪计时器。时间到期后,当前窗口将终止后台作业并将其全部写入日志。Try my kill timer script. Just change the
$ScriptLocation
variable to the script you want to run. That script will then run as a background job while the current windows keeps track of the timer. After the time expires the current window will kill the background job and write it all to logs.尝试在脚本中添加百分比计算..这样您就可以确定完成需要多少时间...
try to add percentage calculation in your script.. so you can identity that how much time it would take to complete...