Powershell COM Excel可见不工作

我写了一个简短的Powershell脚本来复制一些Excel数据。 脚本工作正常,但它每次运行时打开Excel,甚至认为可见的属性设置为$ false。 任何人有任何想法为什么? 我已经search了答案,但找不到任何解决scheme。 我也显示了属性,并设置正确。

打开工作簿时打开Excel。

谢谢,

克里斯

码:

## function to close all com objects function Release-Ref ($ref{ ([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref) -gt 0) [System.GC]::Collect() [System.GC]::WaitForPendingFinalizers() } #Read-Host -Prompt "Press Enter to exit" ##################################################################### ## Load excel com objects attach to file ##################################################################### $ExcelPath = 'C:\Chris_Test.xls' $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $False write-host "Visible 1" write-host $Excel.Visible $ExcelWorkBook = $Excel.Workbooks.Open($ExcelPath) $Excel.Visible = $False write-host "Visible 2" write-host $Excel.Visible $ExcelWorkSheet = $Excel.WorkSheets.item("Sheet1") $Excel.Visible = $False write-host "Visible 3" write-host $Excel.Visible $row = 2 $South_HX_Avg = "This" $Middle_HX_Avg = " is a " $North_HX_Avg = "test." ## ## Cells.Item(Row,Column) #$ExcelWorkSheet.Cells.Item($row,1).Value2 = $South_HX_Avg #$ExcelWorkSheet.Cells.Item(2,2).Value2 = $Middle_HX_Avg #$ExcelWorkSheet.Cells.Item(2,3).Value2 = $North_HX_Avg ##################################################################### # Close connections to Excel # set interactive to false so no save buttons are shown ##################################################################### $Excel.DisplayAlerts = $false $Excel.ScreenUpdating = $false $Excel.Visible = $False write-host "Visible 4" write-host $Excel.Visible $Excel.Visible = $false $Excel.Visible = $False write-host "Visible 5" write-host $Excel.Visible $Excel.UserControl = $false $Excel.Interactive = $false ## save the workbook $ExcelWorkBook.Save() ## quit the workbook $Excel.Quit() ## close all object references Release-Ref($ExcelWorkSheet) Release-Ref($ExcelWorkBook) Release-Ref($Excel) # Move-Item c:\scripts\test.zip c:\test -force Read-Host -Prompt "Press Enter to exit" 

当我取消注释30,31和32行时,它的工作正常,但是我不得不将你的调用注释到Release-Ref(包括定义)以便parsing。

另外,当您使用以下命令创build新的Excel对象时:

 $Excel = New-Object -ComObject Excel.Application 

窗口的可见性在对象的构造函数中默认设置为false,所以不需要显式地设置它。

是的,我尝试重新启动,并尝试在不同的计算机上得到相同的结果。 抓住史蒂夫·拉思伯恩,我的程序错过了一个括号。 我修好后,它仍然打开Excel。

我也尝试了与Release-Ref的调用注释相同的结果。