问题描述
我已多次联系 Microsoft,但均未成功安装 Office 2019 卷和 Access 2019 零售版。
我问的问题在 Microsoft 论坛中得到了回答,因为更新频道是针对批量的。但是一位微软技术人员说可以,我倾向于更新频道的答案。
好吧,微软技术提供的文件setup.bat,在选择(4) SINGLE STANDALONE APP 2019 (EXCELL OR ACCESS OR ANY OFFICE APP) 后会中断
是的,Excel 拼写错误。下面是 setup.bat 文件的代码。我希望 Access 2019 有可能与 Office 2019 卷一起安装。
@echo Off
MKDIR C:\ODT
:CREATE_NEW
set file=c:\odt\test.txt
set source=c:\odt\test.txt
set target=c:\odt\test1.txt
set dest=c:\odt\configuration.xml
set PRD1_EDTN=0
set PRD2_EDTN=0
set PRD3_EDTN=0
set PRD4_EDTN=0
set /a PRD_1=0
set /a PRD_2=0
set /a PRD_3=0
set /a PRD_4=0
set /a PRD_5=0
set PRVS_INST=0
:PFORM
echo ************************************************
echo PLEASE CHOOSE PLATFORM (RECOMMENDED IS 32BIT)
echo (1) 64bit
echo (2) 32bit
choice /c 12
echo ************************************************
:PFORM_CHC1
if %errorlevel%==1 (set PFORM=64
GOTO :LCNS_TYPE) else (GOTO :PFORM_CHC2)
:PFORM_CHC2
if %errorlevel%==2 (set PFORM=32
GOTO :LCNS_TYPE) else (GOTO :PFORM_CHC1)
:LCNS_TYPE
echo ************************************************
echo PLEASE CHOOSE LICENSE TYPE
echo (1) VOLUME LICENSE
echo (2) RETAIL / SINGLE LICENSE
choice /c 12
echo ************************************************
:LCNS_TYPE1
if %errorlevel%==1 (set LCNS_TYPE=Volume
set CHNL=PerpetualVL2019
GOTO :PRD_SEL) else (GOTO :LCNS_TYPE2)
:LCNS_TYPE2
if %errorlevel%==2 (set LCNS_TYPE=Retail
set CHNL=broAD
GOTO :PRD_SEL) else (GOTO :LCNS_TYPE1)
:PRD_SEL
echo ************************************************
echo PLEASE CHOOCE A THE PRODUCT
echo (1) OFFICE 2019 SUITE
echo (2) VISIO 2019
echo (3) PROJECT 2019
echo (4) SINGLE STANDALONE APP 2019 (EXCELL OR ACCESS OR ANY OFFICE APP)
echo (5) OFFICE 365
choice /c 12345
echo ************************************************
:CHC1_1
if %errorlevel%==1 (set PRD_1=1
GOTO :PRD1_EDTN) else (GOTO :CHC1_2)
:CHC1_2
if %errorlevel%==2 (set PRD_2=1
GOTO PRD2_EDTN) else (GOTO :CHC1_3)
:CHC1_3
if %errorlevel%==3 (set PRD_3=1
GOTO PRD3_EDTN) else (GOTO :CHC1_4)
:CHC1_4
if %errorlevel%==4 (set PRD_4=1
GOTO :PRD4_EDTN) else (GOTO :CHC1_5)
:CHC1_5
if %errorlevel%==5 (set PRD_5=1
set LCNS_TYPE=Retail
GOTO :PRD5_EDTN) else (GOTO :CHC1_1)
:PRD1_EDTN
echo ************************************************
echo PLEASE CHOOSE YOUR OFFICE 2019 EDITION
echo (1) OFFICE STANDARD
echo (2) OFFICE PROFESSIONAL
echo (3) OFFICE PROFESSIONAL PLUS
choice /c 1235
echo ************************************************
:EDTN1_CHC1
if %errorlevel%==1 (set PRD1_EDTN=Standard2019
GOTO :PK1) else (GOTO :EDTN1_CHC2)
:EDTN1_CHC2
if %errorlevel%==2 (set PRD1_EDTN=Professional2019
GOTO :PK1) else (GOTO :EDTN1_CHC3)
:EDTN1_CHC3
if %errorlevel%==3 (set PRD1_EDTN=ProPlus2019
GOTO :PK1) else (GOTO :EDTN1_CHC1)
:PK1
echo ************************************************
echo PLEASE KEY IN YOUR VOLUME LICENSE PRODUCT KEY CODE
echo EXAMPLE: XXXXX-12345-1X2X3-ABCDE-XXXXX
set /p PRD1_KEY=
echo ************************************************
GOTO :ADD
:PRD2_EDTN
echo ************************************************
echo PLEASE CHOOSE YOUR VISIO 2019 EDITION
echo (1) VISIO STANDARD
echo (2) VISIO PROFESSIONAL
choice /c 12
echo ************************************************
:EDTN2_CHC1
if %errorlevel%==1 (set PRD2_EDTN=VisioStd2019
GOTO :PK2) else (GOTO :EDTN2_CHC2)
:EDTN2_CHC2
if %errorlevel%==2 (set PRD2_EDTN=VisioPro2019
GOTO :PK2) else (GOTO :EDTN2_CHC1)
:PK2
echo ************************************************
echo PLEASE KEY IN YOUR VOLUME LICENSE PRODUCT KEY CODE
echo EXAMPLE: XXXXX-12345-1X2X3-ABCDE-XXXXX
set /p PRD2_KEY=
echo ************************************************
GOTO :ADD
:PRD3_EDTN
echo ************************************************
echo PLEASE CHOOSE YOUR PROJECT 2019 EDITION
echo (1) PROJECT STANDARD
echo (2) PROJECT PROFESSIONAL
choice /c 12
echo ************************************************
:EDTN3_CHC1
if %errorlevel%==1 (set PRD3_EDTN=ProjectStd2019
GOTO :PK3) else (GOTO :EDTN3_CHC2)
:EDTN3_CHC2
if %errorlevel%==2 (set PRD3_EDTN=ProjectPro2019
GOTO :PK3) else (GOTO :EDTN3_CHC1)
:PK3
echo ************************************************
echo PLEASE KEY IN YOUR VOLUME LICENSE PRODUCT KEY CODE
echo EXAMPLE: XXXXX-12345-1X2X3-ABCDE-XXXXX
set /p PRD3_KEY=
echo ************************************************
GOTO :ADD
::PRD4_EDTN
echo ************************************************
echo PLEASE CHOOSE PRODUCT VERSION
echo 1. 2019
echo 2. 2016
choice /c 12
echo ************************************************
:PRD4_EDTN_1
if %errorlevel%==1 (
GOTO :PRD_APP) else (GOTO :PRD4_EDTN_2)
:PRD4_EDTN_2
if %errorlevel%==2 (set CHNL=broad
GOTO :PRD_APP) else (GOTO :PRD4_EDTN_1)
:PRD_APP
echo ************************************************
echo PLEASE KEY IN YOUR THE TYPE OF THE APP
echo EXAMPLE: PLEASE ASK FROM THE SUPPORT REP FOR CORRECT NAME!
set /p PRD4_EDTN=
echo ************************************************
GOTO :PK4
:PK4
echo ************************************************
echo PLEASE KEY IN YOUR VOLUME LICENSE PRODUCT KEY CODE
echo EXAMPLE: XXXXX-12345-1X2X3-ABCDE-XXXXX
set /p PRD4_KEY=
echo ************************************************
GOTO :ADD
:PRD5_EDTN
echo ************************************************
echo PLEASE CHOOSE YOUR OFFICE 365 EDITION
echo (1) OFFICE 365 PRO PLUS / ENTERPRISE
echo (2) OFFICE 365 BUSInesS / BUSInesS PREMIUM
choice /c 12
echo ************************************************
:EDTN5_CHC1
if %errorlevel%==1 (set PRD5_EDTN=O365ProPlusRetail
GOTO :PK5) else (GOTO :EDTN5_CHC2)
:EDTN5_CHC2
if %errorlevel%==2 (set PRD5_EDTN=O365BusinessRetail
GOTO :PK5) else (GOTO :EDTN5_CHC1)
:PK5
echo ************************************************
echo PLEASE KEY IN YOUR LICENSE PRODUCT KEY CODE
echo EXAMPLE: XXXXX-12345-1X2X3-ABCDE-XXXXX
set /p PRD5_KEY=
echo ************************************************
:ADD
echo ************************************************
echo DO YOU WANT TO INSTALL ANOTHER PRODUCT?
echo 1. YES
echo 2. NO
choice /c 12
echo ************************************************
if %errorlevel%==1 (GOTO :PRD_SEL) else (GOTO :END)
:END
if %PRD_5%==1 (GOTO :CFRMNO5) else (GOTO :CFRM4)
:CFRMNO5
echo *********************************
echo Please Verify if This is all Your info.
echo EDITION : %PRD4_EDTN%
echo PLATFORM : %PFORM%
echo PRODUCT KEY: %PRD4_KEY%
echo *********************************
:CFRM4
if %PRD_4%==1 (GOTO :CFRMNO4) else (GOTO :CFRM3)
:CFRMNO4
echo *********************************
echo Please Verify if This is all Your info.
echo EDITION : %PRD4_EDTN%
echo PLATFORM : %PFORM%
echo PRODUCT KEY: %PRD4_KEY%
echo *********************************
:CFRM3
if %PRD_3%==1 (GOTO :CFRMNO3) else (GOTO :CFRM2)
:CFRMNO3
echo *********************************
echo Please Verify if This is all Your info.
echo EDITION : %PRD3_EDTN%
echo PLATFORM : %PFORM%
echo PRODUCT KEY: %PRD3_KEY%
echo *********************************
:CFRM2
if %PRD_2%==1 (GOTO :CFRMNO2) else (GOTO :CFRM1)
:CFRMNO2
echo *********************************
echo Please Verify if This is all Your info.
echo EDITION : %PRD2_EDTN%
echo PLATFORM : %PFORM%
echo PRODUCT KEY: %PRD2_KEY%
echo *********************************
:CFRM1
if %PRD_1%==1 (GOTO :CFRMNO1) else (GOTO :CNFRM_EDT1)
:CFRMNO1
echo *********************************
echo Please Verify if This is all Your info.
echo EDITION : %PRD1_EDTN%
echo PLATFORM : %PFORM%
echo PRODUCT KEY: %PRD1_KEY%
echo *********************************
:CNFRM_EDT1
echo ************************************************
echo DO YOU WANT TO UPDATE SOME INFO?
echo 1. YES
echo 2. NO
choice /c 12
echo ************************************************
if %errorlevel%==1 (GOTO :PRD_SEL) else (GOTO :CNFRM_EDT2)
:CNFRM_EDT2
if %errorlevel%==2 (GOTO :CONT) else (GOTO :CNFRM_EDT1)
:CONT
echo ^<Configuration^> > %file%
echo ^<Add OfficeClientEdition^="PFORM" Channel^="CHNL"^> >> %file%
:PRD5
if %PRD_5%==1 (GOTO :PRDNO5) else (GOTO :PRD4)
:PRDNO5
echo ^<Product ID^="PRODUCT5" PIDKEY^="PRD5_KEY"^> >> %file%
echo ^<Language ID^="en-us" /^> >> %file%
echo ^</Product^> >> %file%
:PRD4
if %PRD_4%==1 (GOTO :PRDNO4) else (GOTO :PRD3)
:PRDNO4
echo ^<Product ID^="PRODUCT4" PIDKEY^="PRD4_KEY"^> >> %file%
echo ^<Language ID^="en-us" /^> >> %file%
echo ^</Product^> >> %file%
:PRD3
if %PRD_3%==1 (GOTO :PRDNO3) else (GOTO :PRD2)
:PRDNO3
echo ^<Product ID^="PRODUCT3" PIDKEY^="PRD3_KEY"^> >> %file%
echo ^<Language ID^="en-us" /^> >> %file%
echo ^</Product^> >> %file%
:PRD2
if %PRD_2%==1 (GOTO :PRDNO2) else (GOTO :PRD1)
:PRDNO2
echo ^<Product ID^="PRODUCT2" PIDKEY^="PRD2_KEY"^> >> %file%
echo ^<Language ID^="en-us" /^> >> %file%
echo ^</Product^> >> %file%
:PRD1
if %PRD_1%==1 (GOTO :PRDNO1) else (GOTO :PRD_END)
:PRDNO1
echo ^<Product ID^="PRODUCT1" PIDKEY^="PRD1_KEY"^> >> %file%
echo ^<Language ID^="en-us" /^> >> %file%
echo ^</Product^> >> %file%
:PRD_END
echo ^</Add^> >> %file%
echo ^<display Level^="Full" AcceptEULA^="TRUE" /^> >> %file%
echo ^<Property Name^="AUTOACTIVATE" Value^="1" /^> >> %file%
echo ^</Configuration^> >> %file%
:UPDT_CONFG
setlocal enableDelayedExpansion
::PLATFORM
set PFORM_old=PFORM
set PFORM_new=%PFORM%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%PFORM_old%=%PFORM_new%!"
echo(!line!
)
) > %target%
)
::LICENSE TYPE
set LCNS_old=CHNL
set LCNS_new=%CHNL%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %target%') do (
set "line=%%b"
if defined line set "line=!line:%LCNS_old%=%LCNS_new%!"
echo(!line!
)
) > %source%
)
::PRODUCT 5
:PRD5_REP
if %PRD_5%==1 (GOTO :REP_PRD5) else (GOTO :PRD4_REP)
:REP_PRD5
set EDTN1a=PRODUCT5
set EDTN1b=%PRD5_EDTN%%LCNS_TYPE%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %target%
)
set EDTN1a=PRD5_KEY
set EDTN1b=%PRD5_KEY%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %target%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %source%
)
::PRODUCT 4
:PRD4_REP
if %PRD_4%==1 (GOTO :REP_PRD4) else (GOTO :PRD3_REP)
:REP_PRD4
set EDTN1a=PRODUCT4
set EDTN1b=%PRD4_EDTN%%LCNS_TYPE%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %target%
)
set EDTN1a=PRD4_KEY
set EDTN1b=%PRD4_KEY%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %target%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %source%
)
::PRODUCT 3
:PRD3_REP
if %PRD_3%==1 (GOTO :REP_PRD3) else (GOTO :PRD2_REP)
:REP_PRD3
set EDTN1a=PRODUCT3
set EDTN1b=%PRD3_EDTN%%LCNS_TYPE%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %target%
)
set EDTN1a=PRD3_KEY
set EDTN1b=%PRD3_KEY%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %target%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %source%
)
::PRODUCT 2
:PRD2_REP
if %PRD_2%==1 (GOTO :REP_PRD2) else (GOTO :PRD1_REP)
:REP_PRD2
set EDTN1a=PRODUCT2
set EDTN1b=%PRD2_EDTN%%LCNS_TYPE%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %target%
)
set EDTN1a=PRD2_KEY
set EDTN1b=%PRD2_KEY%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %target%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %source%
)
::PRODUCT 1
:PRD1_REP
if %PRD_1%==1 (GOTO :REP_PRD1) else (GOTO :CREATE_CONfigXML)
:REP_PRD1
set EDTN1a=PRODUCT1
set EDTN1b=%PRD1_EDTN%%LCNS_TYPE%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %target%
)
set EDTN1a=PRD1_KEY
set EDTN1b=%PRD1_KEY%
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %target%') do (
set "line=%%b"
if defined line set "line=!line:%EDTN1a%=%EDTN1b%!"
echo(!line!
)
) > %source%
)
:CREATE_CONfigXML
1>"%dest%" (
for /f "delims=" %%e in ('findstr /n "^" "%source%"') do (
set "line=%%e"
setlocal enabledelayedexpansion
set "line=!line:*:=!"
if not "!line!" == "" (
echo(!line!
)
endlocal
)
)
:PWRSHL
powershell.exe -command "Invoke-WebRequest https://download.microsoft.com/download/2/7/A/27AF1BE6-DD20-4CB4-B154-EBAB8A7D4A7E/officedeploymenttool_11901-20022.exe -OutFile C:\odt\odt.exe"
if %errorlevel%==0 (GOTO :INSTYPE) else (GOTO :SHOW_ERROR)
:SHOW_ERROR
echo There is an issue encountered when trying to download the ODT program!
echo Please try downloading it manually and extract it to the ODT folder found in your C Drive.
echo %errorlevel%
pause
:INSTYPE
Start /d C:\odt /b /wait odt.exe /extract:C:\ODT
:CREAT_AUTORUN
set autorun=c:\odt\autorun.bat
set value=start /d "C:\ODT" /b /wait setup.exe /configure C:\ODT\configuration.xml
echo %value% > %autorun%
echo ************************************************
echo Choose the TYPE of INSTALLATION.
echo (1) Install ONLY Application.(RECOMMENDED)
echo (2) Download Installation Files and Install Application.
choice /c 12
echo ************************************************
:INSTYPE_1
if %errorlevel%==1 (
GOTO :INSTALL) else (GOTO :INSTYPE_2)
:INSTYPE_2
if %errorlevel%==2 (
GOTO :DWN_INST) else (GOTO :INSTYPE_1)
:DWN_INST
start /d "C:\odt" /b /wait setup.exe /download configuration.xml
:INSTALL
start /d "C:\odt" /b /wait setup.exe /configure configuration.xml
:EOC
exit
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)