mlevon
- Longevity: 8 years 11 months
- Posts: 65
- 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
|
sov44
- Longevity: 7 years 9 months
- Posts: 32
- REPUTATION:4[+] [-]
- Location: г. Киров
|
mlevon, ВАши скрипты никак не относятся к разряду "полезные CMD файлы". ИМХО - возможно нужна отдельная тема типа "Помогите с скриптами". Или приглашаю на этот форум, ветка cmd - http://www.cyberforum.ru/cmd-bat Теперь по-сути: - после start желательно ставить кавычки, пустые или с текстом между ними, в которых будет отражаться title командной строки. Напримерstart "Установка 7zip" /wait %SystemDrive%\Install\7z64.msi /q - второй код написан для командной строки, а не для батника, удвойте процент перед переменной i
|
Отправлено: 04-Apr-2017 10:10
(after 1 hour 48 minutes)
Ander_73
- Longevity: 7 years 7 months
- Posts: 3716
- REPUTATION:127[+] [-]
|
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 нужен просто для удобства, все ключи можно прописывать прямо в командной строке. И в моём примере не хватает порта и типа авторизации. Думаю, это не сложно дописать, прочитав документацию по ключам.
|
ssanchess
- Longevity: 9 years 8 months
- Posts: 294
- REPUTATION:11[+] [-]
- Location: Из тайги
|
Ander_73, Спасибо. Буду разбираться и вникать.
|
Отправлено: 04-Apr-2017 19:47
(after 1 hour 33 minutes)
SunOK
- Longevity: 9 years 10 months
- Posts: 352
- REPUTATION:32[+] [-]
- Location: Україна, Перлина Поділля
|
mlevon, ключ командной строки для Setup.exe/m:%fullpath%\OEM или /m:%fullpath%\$OEM$ где %fullpath% - путь к папке, включая букву диска.
|
mlevon
- Longevity: 8 years 11 months
- Posts: 65
- REPUTATION:0[+] [-]
|
У меня установка идет с помощю скрипта http://usbtor.ru/viewtopic.php?p=33024#3302439976mlevon, ключ командной строки для Setup.exe /m:%fullpath%\OEM или /m:%fullpath%\$OEM$ где %fullpath% - путь к папке, включая букву диска. Куда это прикрутить, не знаю (если честно знаний не хватает )
|
vovan1982
- Longevity: 9 years 7 months
- Posts: 1121
- REPUTATION:76[+] [-]
- 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
|
puhpol
- Longevity: 9 years
- Posts: 888
- REPUTATION:74[+] [-]
|
mlevon, Приветствую! 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$ папки будут использованы в установке. Не знаю по какой причине нужно искать оем папку в другом месте.... Проще изменить имя папки. В противном случае - назначать еще одну переменную.
|
mlevon
- Longevity: 8 years 11 months
- Posts: 65
- 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 части.
|
Отправлено: 05-Apr-2017 09:53
(after 1 hour 1 minute)
puhpol
- Longevity: 9 years
- Posts: 888
- REPUTATION:74[+] [-]
|
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 работать не должон по моим ощущениям....
|
puhpol
- Longevity: 9 years
- Posts: 888
- REPUTATION:74[+] [-]
|
Использую в 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
|
mlevon
- Longevity: 8 years 11 months
- Posts: 65
- 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. Не судите строго, я чайник))))
|
puhpol
- Longevity: 9 years
- Posts: 888
- REPUTATION:74[+] [-]
|
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 89
Current time is: 15-Sep 08:56
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
|
|