Отсчет установленных обновлений
Помогите написать скрипт по установке обновлений Microsoft Office с автоматическим отсчетом количества установленных обновлений
(чтобы вручную не писать: Установка обновления 1 завершена, Установка обновления 2 завершена и т.д.)
п.с. сразу оговорюсь, что скрипт написан в 866 кодировке ;)
Код:
Set Cnt=0
For %%I In (*.msp) Do Set /A Cnt += 1
Echo Количество обновлений - %Cnt%
ECHO.
ECHO.
start /wait msiexec /update kb2202188-clview.msp /qb-!
ECHO Установка обновления 1 завершена
start /wait msiexec /update kb2289116-osc-x-none-ru-ru.msp /qb-!
ECHO Установка обновления 2 завершена
start /wait msiexec /update kb2289116-oscintl-ru-ru.msp /qb-!
ECHO Установка обновления 3 завершена
start /wait msiexec /update kb2345000-word.msp /qb-!
ECHO Установка обновления 4 завершена
.........
|
sov44, так же, как это сделано в Запуск RunOnceEx с CD:
Код:
…
SET /A i=0
start /wait msiexec /update kb2202188-clview.msp /qb-!
SET /A i+=1
ECHO Установка обновления %i% завершена
start /wait msiexec /update kb2289116-osc-x-none-ru-ru.msp /qb-!
SET /A i+=1
ECHO Установка обновления %i% завершена
start /wait msiexec /update kb2289116-oscintl-ru-ru.msp /qb-!
SET /A i+=1
ECHO Установка обновления %i% завершена
…
|
Или так:
Код:
@Echo off
setlocal enabledelayedexpansion
Set Cnt=0
For %%I In (*.msp) Do Set /A Cnt += 1
Echo Количество обновлений - %Cnt%
ECHO.
ECHO.
Set cntA=0
For %%I In (
"kb2202188-clview.msp"
"kb2289116-osc-x-none-ru-ru.msp"
"kb2289116-oscintl-ru-ru.msp"
"kb2345000-word.msp"
) Do (
start /wait msiexec /update %%~I /qb-^^!
Set /a cntA += 1
ECHO Установка обновления !cntA! завершена
)
|
Подскажите, почему не меняется значение [ChainedInstall_%Cnr%]
Код:
Set Cnr=5
For %%I In ("Office_Updates\*.msp") Do (
Echo.
Echo [ChainedInstall_%Cnr%]
Set /A %Cnr% += 1
Echo TaskName=
Echo TASKTYPE=exe
Echo PATH=MSIExec.exe
Echo CmdLine=/update %%I /qb
)
|
Цитата:
Цитата sov44
почему не меняется значение »
|
Добавьте в начало скрипта
Код:
setlocal enabledelayedexpansion
и переменную заключите в восклицательные знаки вместо процентов.
Код:
Echo [ChainedInstall_!Cnr!]
|
Всё равно не считает (отсутствующий операнд)
Код:
Set Cnr=5
For %%I In ("Office_Updates\*.msp") Do (
Echo.
Echo [ChainedInstall_!Cnr!]
Set /A !Cnr! += 1
Echo TaskName=
Echo TASKTYPE=exe
Echo PATH=MSIExec.exe
Echo CmdLine=/update %%I /qb
)
|
sov44, а где строка???
Цитата:
Цитата gora
Добавьте в начало скрипта
Код:
setlocal enabledelayedexpansion »
|
|
sov44, напротив, уберите «%»:
А в остальном — по #5.
|
Стороку добавил (забыл об этом сразу написать, т.к. это лишь кусок скрипта )
Всё заработало!
п.с. Iska, поясните, почему Cnr без переменных?
|
Цитата:
Цитата sov44
п.с. Iska, поясните, почему Cnr без переменных? »
|
Смотрите отсюда и ниже.
|
Подскажите, как из цикла обработки msp
Код:
@echo off
setlocal enabledelayedexpansion
Set Cnr=2
For %%I In ("Office_Updates\*.msp") Do (
Echo.
Echo [ChainedInstall_!Cnr!]
Set /A Cnr += 1
Echo TaskName=
Echo TASKTYPE=exe
Echo PATH=MSIExec.exe
Echo CmdLine=/update %%I /qb
)
исключить owc11sp1-ru-ru.msp
|
Код:
@Echo Off
SetLocal EnableDelayedExpansion
Set Cnr=2
For %%I In ("Office_Updates\*.msp") Do (
If Not "%%~nxI"=="owc11sp1-ru-ru.msp" (
Echo.
Echo [ChainedInstall_!Cnr!]
Set /A Cnr += 1
Echo TaskName=
Echo TASKTYPE=exe
Echo PATH=MSIExec.exe
Echo CmdLine=/update %%I /qb
)
)
|
Время: 05:01.
© OSzone.net 2001-2025