[Quote]

    mlevon
  • 1606
  • Longevity: 3 years 11 months
  • Posts: 74
  • REPUTATION:0

    [+] [-]
Скидываю 2 решения, которые применил в SetupComplete.cmd
1. Проверка на разрядность операционной системы , с установкой какой нибудь програмы (в данном случае ставиться 7zip)
echo %PROCESSOR_ARCHITECTURE%|FINDSTR AMD64>NUL && start /wait %SystemDrive%\Install\7z64.msi /q || start /wait %SystemDrive%\Install\7z32.msi /q
2. Проверка операционной системы, если win 7 - то установи фреймворк, в другом случае(т.е если не 7) то установи к примеру 7zip ))
@echo off
for /f "tokens=*" %%i in ('systeminfo 2^>nul') do (
echo %%i|>nul findstr Windows&& set OS=%%i&& goto:#
)
:#
for %%i in (
7
10
) do (
set OS| >nul findstr /ilc:"Windows %%i"&& set OS=%%i
)
echo %OS%
if %OS%==7 (
start /wait %SystemDrive%\Install\framework462.exe /q
start /wait %SystemDrive%\Install\theme7.exe
)
if %OS%==10 (
start /wait %SystemDrive%\Install\theme10.exe
)
1 команду тестил с установкой 7zip, 2 команду только из под винды тестить успел, в setupcomplete еще не успел проверить, но под виндой норм работает
P.S. нашел сайт, на английском, где очень много разных вопросов по поводу скриптописания обусждено. Не уверен, что можно тут выкладывать , но все таки рискну. P.S.S Уважаемые инженеры, которые разбираются в скриптах, огромная просьба проверить скрипты на грамотность.


Last edited by mlevon on 2017-04-11 08:11; edited 1 time in total

[Quote]

    sov44
  • 14940
  • Longevity: 2 years 9 months
  • Posts: 26
  • REPUTATION:2

    [+] [-]
  • Location: г. Киров
mlevon, ВАши скрипты никак не относятся к разряду "полезные CMD файлы". ИМХО - возможно нужна отдельная тема типа "Помогите с скриптами". Или приглашаю на этот форум, ветка cmd - http://www.cyberforum.ru/cmd-bat
Теперь по-сути:
- после start желательно ставить кавычки, пустые или с текстом между ними, в которых будет отражаться title командной строки. Например
start "Установка 7zip" /wait %SystemDrive%\Install\7z64.msi /q
- второй код написан для командной строки, а не для батника, удвойте процент перед переменной i

[Quote]

    mlevon
  • 1606
  • Longevity: 3 years 11 months
  • Posts: 74
  • REPUTATION:0

    [+] [-]
Привет всем. Есть ли какая либо возможность подхватывать папку OEM не рядом с install.wim, а из заданной папки ?

[Quote]

    ssanchess
  • 127
  • Longevity: 4 years 9 months
  • Posts: 293
  • REPUTATION:11

    [+] [-]
  • Location: Из тайги
Приветствую господа! aa
Помогите пожалуйста чайнику со скриптом.
Есть комп, где работает КРМ Директор и ЭКЖ.
Есть батник, который делает бэкап БД на комп и копирует этот архив на сервер школы.
Хочу ещё сделать чтобы архив с бэкапом отправлялся на почту школы.
Подскажите как это сделать.
В инете нашёл скрипт для отправки, но у меня что-то не выходит.

Сам скрипт

Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
    .To = "********@mail.ru" 'куда отправляем
    .From = "********@mail.ru" 'Email отправителя
    .Subject = "БД" 'Тема письма
    .TextBody = "Копия БД" 'Сообщение
    .AddAttachment "D:\backup\*********.zip" 'Прикрепить файл
    .TextBodyPart.Charset = "windows-1251" 'русская кодировка
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange
    .Item(v_Conf & "smtpserver") = "smtp.mail.ru" 'Адрес SMTP-сервера
    .Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации
    .Item(v_Conf & "sendusername") = "********@mail.ru" 'здесь имя пользователя
    .Item(v_Conf & "sendpassword") = "PASSWORD" 'пароль
    .Item(v_Conf & "smtpserverport") = 465 'порт (альтернативный - 465)
    .Item(v_Conf & "smtpusessl") = False 'использовать ли шифрованое подключение SSL
    .Item(v_Conf & "smtpconnectiontimeout") = 120 'Время до завершения повторных попыток подключения
    .Update
End With
    .send
End With
Set o_Mess = Nothing
Выскакивает ошибка

Что не так делаю.

[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 7 months
  • Posts: 1211
  • REPUTATION:80

    [+] [-]
sanchess, например, я делаю так:
1. С сайта http://www.blat.net/ берём консольный транспорт
2. Создаем smtp.ini вида:
-to user@mail.ru -server smtp.mail.ru -u user -pw password -charset cp866
2. Ваяем бат-ника вида:
blat.exe log.txt -s "Backup report" -of smtp.ini -attach base.rar
И потом всё это запускаем после архивации.
smtp.ini нужен просто для удобства, все ключи можно прописывать прямо в командной строке. И в моём примере не хватает порта и типа авторизации. Думаю, это не сложно дописать, прочитав документацию по ключам.

[Quote]

    ssanchess
  • 127
  • Longevity: 4 years 9 months
  • Posts: 293
  • REPUTATION:11

    [+] [-]
  • Location: Из тайги
Ander_73, aa
Спасибо. Буду разбираться и вникать.

[Quote]

    SunOK
  • 9
  • Longevity: 4 years 10 months
  • Posts: 461
  • REPUTATION:26

    [+] [-]
  • Location: Україна, Перлина Поділля
mlevon, ключ командной строки для Setup.exe
/m:%fullpath%\OEM
или
/m:%fullpath%\$OEM$
где %fullpath% - путь к папке, включая букву диска.

[Quote]

    mlevon
  • 1606
  • Longevity: 3 years 11 months
  • Posts: 74
  • REPUTATION:0

    [+] [-]
У меня установка идет с помощю скрипта
http://usbtor.ru/viewtopic.php?p=33024#33024
39976mlevon, ключ командной строки для Setup.exe
/m:%fullpath%\OEM
или
/m:%fullpath%\$OEM$
где %fullpath% - путь к папке, включая букву диска.
Куда это прикрутить, не знаю (если честно знаний не хватает ah )

[Quote]

    vovan1982
  • 214
  • Longevity: 4 years 7 months
  • Posts: 1067
  • REPUTATION:60

    [+] [-]
  • Location: Ростов-на-Дону
mlevon, замени красные строки

Вариант 1

@echo off
setlocal enabledelayedexpansion
SET fullpath=здесь прописать путь к OEM или $OEM$
SET DD=_WIN
SET MM=1032
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!\!MM!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%fullpath%\$OEM$
if exist %IP%\$OEM$\nul SET OEM=/m:%fullpath%\$OEM$
set ST=X:\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
exit

Вариант 2

@echo off
setlocal enabledelayedexpansion
SET DD=_WIN
SET MM=1032
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!\!MM!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM - заменить на свой путь
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$ - заменить на свой путь
set ST=X:\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
exit

[Quote]

    puhpol
  • 2
  • Longevity: 4 years 10 months
  • Posts: 1011
  • REPUTATION:45

    [+] [-]
mlevon, Приветствую! aa
39982У меня установка идет с помощю скрипта
Ну дык тама все есть:

скрипт

@echo off
setlocal enabledelayedexpansion
SET DD=_WIN
SET MM=1032
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!\!MM!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml

if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$

set ST=X:\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
exit

Выделенное синим - если рядом есть unattend.xml или _unattend.xml будут использованы в установке.
Выделенное красным - если рядом есть OEM или $OEM$ папки будут использованы в установке.
Не знаю по какой причине нужно искать оем папку в другом месте.... Проще изменить имя папки.
В противном случае - назначать еще одну переменную.

[Quote]

    mlevon
  • 1606
  • Longevity: 3 years 11 months
  • Posts: 74
  • REPUTATION:0

    [+] [-]
vovan1982, Спасибо большое. Сча попробую, отпишусь.
puhpol, Исходя из реализации, нужда такая, нужна 1 общая папка оем на 2 разных install.wim-а , в разных папках.
Я вот так менял. В 2 местах.
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
И не было подхвата папки ОЕМ. Сча попробую только во 2 части.

[Quote]

    puhpol
  • 2
  • Longevity: 4 years 10 months
  • Posts: 1011
  • REPUTATION:45

    [+] [-]
39986Исходя из реализации, нужда такая, нужна 1 общая папка оем на 2 разных install.wim-а , в разных папках.
Положите в одну папку несколько файлов install , назовите их как вам угодно и подправьте скрипт. Делов то.
Я заметил что этот скрипт почему то не кто не хочет изменять под свои нужды.Даже вот это:
SET DD=_WIN
SET MM=1032

Как прописал я когдато , так оно и не изменено не кем. А ведь не кто не мешает прописать путь в одной переменной.....
Пример:
В папке "W7" лежат два файла install . Один имеет имя lite.wim, второй install.esd.
Рядом два файла ответов: unattend.xml для install.esd , и Autounattend.xml для lite.wim
Так же для обеих установок общяя папка $OEM$.
Два скрипта запускающих установку:

Скрипт для lite.wim

@echo off
setlocal enabledelayedexpansion
SET MM=puhf\w7
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!MM!
dir /d !IP!\lite.wim&&set IN=!IP!\lite.wim
dir /d !IP!\lite.esd&&set IN=!IP!\lite.esd
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo НЕТУ ФАЙЛА LITE.WIM(ESD,SWM) по пути %MM%
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\Autounattend.xml SET UN=/unattend:%IP%\Autounattend.xml
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
set ST=X:\sources\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause

Скрипт для install.esd

@echo off
setlocal enabledelayedexpansion
SET MM=puhf\w7
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!MM!
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo НЕТУ ФАЙЛА INSTALL.WIM(ESD,SWM) по пути %MM%
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
set ST=X:\sources\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
Вариантов много....
З.Ы. И первый скрипт от vovan1982 работать не должон по моим ощущениям.... ah

[Quote]

    puhpol
  • 2
  • Longevity: 4 years 10 months
  • Posts: 1011
  • REPUTATION:45

    [+] [-]
Использую в SetupComplete для установки панели персонализации в индексы где отсутствует.
REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | FINDSTR /i STARTER
IF NOT ERRORLEVEL 1 START /b /wait data\Panel.exe
REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | FINDSTR /i BASIC
IF NOT ERRORLEVEL 1 START /b /wait data\Panel.exe

[Quote]

    mlevon
  • 1606
  • Longevity: 3 years 11 months
  • Posts: 74
  • REPUTATION:0

    [+] [-]
З.Ы. И первый скрипт от vovan1982 работать не должон по моим ощущениям.... ah
подхвата не было. винда установилась чистая.
Из boot.wim грузится оболочка, с 2 кнопками. Каждая кнопка вызывает скрипт
@echo off
setlocal enabledelayedexpansion
SET DD=Sources
SET MM=Win7
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!\!MM!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist X:\sources\unattend.xml SET UN=/unattend:X:\sources\unattend.xml
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%DD%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%DD%\$OEM$
set ST=X:\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit
@echo off
setlocal enabledelayedexpansion
SET DD=Sources
SET MM=Win10
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!\!MM!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist X:\sources\unattend.xml SET UN=/unattend:X:\sources\unattend.xml
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%DD%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%DD%\$OEM$
set ST=X:\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit
И нужна 1 оем папка, с тем же софтом, для 7 и для 10.
Положите в одну папку несколько файлов install , назовите их как вам угодно и подправьте скрипт. Делов то.
Я заметил что этот скрипт почему то не кто не хочет изменять под свои нужды.Даже вот это:
SET DD=_WIN
SET MM=1032
Как прописал я когдато , так оно и не изменено не кем. А ведь не кто не мешает прописать путь в одной переменной.....
Пример:
В папке "W7" лежат два файла install . Один имеет имя lite.wim, второй install.esd.
Рядом два файла ответов: unattend.xml для install.esd , и Autounattend.xml для lite.wim
Так же для обеих установок общяя папка $OEM$.
Два скрипта запускающих установку:
Думал, что название образа должно быть install.wim обьязательно.
P.S. Не судите строго, я чайник))))

[Quote]

    puhpol
  • 2
  • Longevity: 4 years 10 months
  • Posts: 1011
  • REPUTATION:45

    [+] [-]
39990 Не судите строго, я чайник))))
Я тоже....
vovan1982 в скрипте задает переменную, а поиск ее нет. Соответственно скрипт не находит ее....
Могу приблезительно нарисовать как оно приблизительно должно быть, но не уверен что правильно....
@echo off
setlocal enabledelayedexpansion
set n=здесь прописать путь к $OEM$
for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir %%I:%n%

SET DD=_WIN
SET MM=1032
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!\!MM!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %n%\$OEM$\nul SET OEM=/m:%n%\$OEM$
set ST=X:\Setup.exe
if exist %IP%\Setup.exe set ST=%IP%\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
exit
Изменено выделенное красным.
НЕ совсем уверен что правильно написал.... Смущает вот это: for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir %%I:%n%
Ниже используется такая же буква, а я не очень понимаю что оно значит....

Page 1 of 23


Display posts:    

Current time is: 21-Sep 22:58

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum