我有一个批处理文件,它基本上只是检查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
答案 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"