使用PowerShell将多个xls转换为csv

我试图将多个Excel文件(xls)转换为位于使用PowerShell的文件夹中的csv。

我可以转换一个文件,但需要帮助转换文件夹中的多个文件。 但需要build议如何转换多个文件。

$ExcelWB = new-object -comobject excel.application $Workbook = $ExcelWB.Workbooks.Open(c:\temp\temp.xls) $Workbook.SaveAs("c:\temp\temp.csv",6) $Workbook.Close($false) $ExcelWB.quit() 

你可以把它包装在遍历所有文件的循环中,并将xls扩展名更改为csv

 foreach($file in (Get-ChildItem "C:\temp")) { $newname = $file.FullName -replace '\.xls$', '.csv' $ExcelWB = new-object -comobject excel.application $Workbook = $ExcelWB.Workbooks.Open($file.FullName) $Workbook.SaveAs($newname,6) $Workbook.Close($false) $ExcelWB.quit() } 

有这个未经testing的代码的警告,但它应该帮助包围你的问题

 $ExcelWB = new-object -comobject excel.application Get-ChildItem -Path c:\folder -Filter "*.xls" | ForEach-Object{ $Workbook = $ExcelWB.Workbooks.Open($_.Fullname) $newName = ($_.Fullname).Replace($_.Extension,".csv") $Workbook.SaveAs($newName,6) $Workbook.Close($false) } $ExcelWB.quit() 

取第一个和最后一个之间的线,并build立一个循环。 使用Get-ChildItem获取您的xls文件,然后通过replace扩展名(如果文件的FullName来构build一个新名称