作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
无论我尝试什么,Excel 2013 都会继续在 Windows 10 的后台运行,无论我在 PowerShell 脚本末尾抛出什么命令。我已经尝试将我发现的所有建议添加到我的脚本末尾,并且我打开的唯一 Excel 对象继续保持打开状态。这是我在脚本末尾的内容。还有其他建议吗?
## Quit Excel and Terminate Excel Application process:
$xlsxwb.quit
$xlsxobj.Quit
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xlsxobj)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xlsxwb)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xlsxSh1)
Start-Sleep 1
'Excel processes: {0}' -f @(Get-Process excel -ea 0).Count
最佳答案
我遇到了同样的问题并尝试了各种解决方案但没有成功。当我开始释放我保存为变量的所有 COM 对象时,我更接近了,而不仅仅是工作簿、工作表和 Excel 应用程序的对象。
例如,采用以下示例代码:
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $False
$Workbook = $Excel.Workbooks.Open("C:\Temp\test.xlsx")
$Worksheet = $Workbook.Worksheets.Item(1)
$UsedRange = $Worksheet.UsedRange
$Range = $Worksheet.Range("A1:B10")
$Workbook.Close()
$Excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Range)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($UsedRange)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Worksheet)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Workbook)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
[GC]::Collect()
关于excel - 如何在 PowerShell 脚本后停止 Excel 进程在后台运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39044995/
我是一名优秀的程序员,十分优秀!