问题: 需要一个需要2个参数的批处理文件 - >办公室版本和操作系统位(32或64) 并打开所需的Excel文件。
类似于: -
我将此文件称为Test 2010 64。 这应该允许我在64位机器上打开2010 excel。
TEST.BAT
set version=%1%
set bit=%2%
if "%version%" == "2010" if "%bit%" == "64" (cd "C:\Program Files\Microsoft Office\Office14")
if "%version%" == "2010" if "%bit%" == "32" (cd "C:\Program Files(x86)\Microsoft Office\Office14")
if "%version%" == "2013" if "%bit%" == "64" (cd "C:\Program Files\Microsoft Office\Office15")
if "%version%" == "2013" if "%bit%" == "32" (cd "C:\Program Files(x86)\Microsoft Office\Office15")
start excel.exe
该计划无效。有人可以指导。 我使用的是64位WIN7机器
答案 0 :(得分:1)
我建议使用
set version=%~1
set bit=%~2
if "%version%" == "2010" if "%bit%" == "64" (
cd /D "%ProgramFiles%\Microsoft Office\Office14"
goto StartExcel
)
if "%version%" == "2010" if "%bit%" == "32" (
cd /D "%ProgramFiles(x86)%\Microsoft Office\Office14"
goto StartExcel
)
if "%version%" == "2013" if "%bit%" == "64" (
cd /D "%ProgramFiles%\Microsoft Office\Office15"
goto StartExcel
)
if "%version%" == "2013" if "%bit%" == "32" (
cd /D "%ProgramFiles(x86)%\Microsoft Office\Office15"
goto StartExcel
)
goto :EOF
:StartExcel
start excel.exe
代码中的主要错误是%1
和%2
引用已经参数1和2之后的百分号。
%~1
调用批处理文件,则在上面的代码中使用 %~2
和test.bat "2010" "64"
来删除双引号,但这两个参数不需要双引号。
此外还使用了%ProgramFiles%
和%ProgramFiles(x86)%
,这样批处理代码也能在非英语版Windows XP x86和x64以及标准程序文件目录不在驱动器C上的计算机上运行。
如果程序文件目录在执行批处理文件时与当前工作目录不在同一驱动器上,则另外使用Switch /D
。
最后批处理文件在不匹配的情况下退出,例如,如果批处理文件的用户在输入2个参数时输入错误。