打开文件会抛出错误但仍然有效

时间:2015-07-06 15:21:03

标签: batch-file

我有一个批处理文件,它基本上只是检查MSExcel的版本,并根据它打开一个不同的文件。但是,我遇到了一个奇怪的问题,在成功运行批处理文件后,Excel返回错误:

“无法访问该文件。请尝试以下操作之一:” (列出建议)

最奇怪的是,当我按下OK时, 文件仍然正常打开! 我真的很想为我的用户摆脱这个错误;我能做些什么来摆脱它?

这是我的代码,万一有人想知道。

@echo off
echo %~dp0
if exist "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" GOTO L2010
if exist "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" GOTO L2007
if exist "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" GOTO L2003
echo "Excel not installed"
pause
GOTO End
:L2010
:L2007
Start excel.exe %~dp0 "resources\SQL_Report_Compiler.xlsm"
GOTO End
Pause
:L2003
Start excel.exe %~dp0 "resources\SQL_Report_Compiler.xls"
:End

1 个答案:

答案 0 :(得分:1)

您的代码传递了两个参数,而不是一个,因此Excel认为您正在尝试打开两个文档。

例如,尝试运行:

Start excel.exe Spreadsheet1.xlsx Spreadsheet2.xlsx

您将打开两个电子表格。这个空间正在抛出它。

第一个参数出错,因为您无法将目录本身作为文件打开。

第二个参数可能有效,因为Excel会自然地搜索当前目录。

尝试:

Start excel.exe "%~dp0resources\SQL_Report_Compiler.xlsm"

Start excel.exe "%~dp0resources\SQL_Report_Compiler.xls"