这是一个相当简单的脚本,但它并不总是有效。今天我第一次运行它时,它成功了一次。我相信它没有在后续运行中打开我指定的路径中的文件。我没有在日志输出中看到错误,所以我不知道接下来该怎么做。我在这个论坛上看到过关于将桌面文件夹添加到此路径的帖子,我已经这样做了:C:\Windows\SysWOW64\config\systemprofile。我使用的是 64 位版本的 Excel 2013。
这是我的脚本:
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.displayAlerts = $false
$path = "C:\Workbooks"
$workbook = Get-ChildItem -path $path -include *.xlsx, *.xls -recurse;
foreach ($file in $workbook) {
$workbook = $excel.Workbooks.Open($file.FullName)
$excel.ActiveWorkbook.RefreshAll()
$excel.ActiveWorkbook.save()
$excel.ActiveWorkbook.close()
}
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Remove-Variable excel
$error | out-file "C:\Scripts\log\RefreshLog.txt"