2017-04-14 92 views
0

使用下面的代碼轉換指定目錄中的所有excel文件。當我嘗試將一個文件轉換爲csv時,它按照預期工作,但是當我嘗試將所有excel文件轉換爲csv時,不會發生任何異常,並且文件不會被轉換。powershell腳本問題將多個excel文件轉換爲csv

$path = get-childitem -path "\\sharedrive\excelfiles\" -filter *.xlsx 

foreach ($file in $path) 
{ 

$Excelfilename = $file.fullname 
$CSVfilename = "" + $file.Basename 

$xlCSV=6 

$Excel = New-Object -comobject Excel.Application 
$Excel.Visible = $False 
$Excel.displayalerts=$False 
$Workbook = $Excel.Workbooks.Open($ExcelFileName) 
$Workbook.SaveAs($CSVfilename,$xlCSV) 
$Excel.Quit() 

} 

回答

0

我以前也遇到同樣的問題,這TechNet文章是非常有用的:https://technet.microsoft.com/en-us/library/ff730962.aspx

基本上你做的一切權利,但.Quit()方法是不是正是你因爲它擺脫了程序而不是COM對象。我們需要進一步去一層,並調用.NET Framework來釋放如下的COM對象,然後釋放$ Excel變量。

$Excel.Quit()

[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)

Remove-Variable $Excel

這應該給你你在找什麼,並適當地清理環境,讓您在循環回通過並作出改變一切。 csv's