使用Powershell关闭特定的Excel文件

时间:2019-06-05 04:18:18

标签: powershell

使用什么适当的PowerShell cmdlet可以杀死特定的Excel文件。命令

Stop-Process -Name "excel"

关闭所有打开的Excel应用程序。

谢谢!

3 个答案:

答案 0 :(得分:4)

实际上,excel在.xlsx的一个实例中打开excel.exe文件

杀死excel.exe将杀死所有打开的工作簿。 MainWindowTitle仅显示主动工作簿,因此您将无法通过该属性来匹配被动工作簿。

一种关闭特定工作簿的更好方法是通过com对象获取excel实例。

关闭与Name(文件名)或FullName(文件路径)匹配的工作簿

$excel = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application")
$excel.DisplayAlerts = $false
$excel.Workbooks | %{if($_.Name -imatch "excel file name"){$_.Close()}}

答案 1 :(得分:2)

尝试一下:

Get-Process excel –ea 0 | Where-Object { $_.MainWindowTitle –like ‘*report.csv*’ } | Stop-Process

这是MS的官方指南:

Stop-Process

答案 2 :(得分:0)

$Application = New-Object -ComObject excel.application
$Application.Visible=$True

$workbook = $application.Workbooks.open("C:\mySheet.xlsx")

Start-Sleep -Seconds 5

$workbook.close($false)

问题是在关闭文档时窗口保持打开状态。

希望它仍然有帮助。 BR