mlevon
- Стаж: 9 лет 1 месяц
- Сообщений: 65
- Репутация: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 Уважаемые инженеры, которые разбираются в скриптах, огромная просьба проверить скрипты на грамотность.
Последний раз редактировалось: mlevon (2017-04-11 08:11), всего редактировалось 1 раз
|
sov44
- Стаж: 7 лет 11 месяцев
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
mlevon, ВАши скрипты никак не относятся к разряду "полезные CMD файлы". ИМХО - возможно нужна отдельная тема типа "Помогите с скриптами". Или приглашаю на этот форум, ветка cmd - http://www.cyberforum.ru/cmd-bat Теперь по-сути: - после start желательно ставить кавычки, пустые или с текстом между ними, в которых будет отражаться title командной строки. Напримерstart "Установка 7zip" /wait %SystemDrive%\Install\7z64.msi /q - второй код написан для командной строки, а не для батника, удвойте процент перед переменной i
|
Отправлено: 04-Апр-2017 10:10
(спустя 1 час 48 минут)
Ander_73
- Стаж: 7 лет 9 месяцев
- Сообщений: 3810
- Репутация: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
- Стаж: 9 лет
- Сообщений: 294
- Репутация:11[+] [-]
- Откуда: Из тайги
|
Ander_73, Спасибо. Буду разбираться и вникать.
|
Отправлено: 04-Апр-2017 19:47
(спустя 1 час 33 минуты)
SunOK
- Стаж: 10 лет
- Сообщений: 352
- Репутация:32[+] [-]
- Откуда: Україна, Перлина Поділля
|
mlevon, ключ командной строки для Setup.exe/m:%fullpath%\OEM или /m:%fullpath%\$OEM$ где %fullpath% - путь к папке, включая букву диска.
|
mlevon
- Стаж: 9 лет 1 месяц
- Сообщений: 65
- Репутация:0[+] [-]
|
У меня установка идет с помощю скрипта http://usbtor.ru/viewtopic.php?p=33024#3302439976mlevon, ключ командной строки для Setup.exe /m:%fullpath%\OEM или /m:%fullpath%\$OEM$ где %fullpath% - путь к папке, включая букву диска. Куда это прикрутить, не знаю (если честно знаний не хватает )
|
vovan1982
- Стаж: 9 лет 9 месяцев
- Сообщений: 1129
- Репутация:76[+] [-]
- Откуда: Ростов-на-Дону
|
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
- Стаж: 10 лет
- Сообщений: 891
- Репутация:75[+] [-]
|
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
- Стаж: 9 лет 1 месяц
- Сообщений: 65
- Репутация: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-Апр-2017 09:53
(спустя 1 час 1 минута)
puhpol
- Стаж: 10 лет
- Сообщений: 891
- Репутация:75[+] [-]
|
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
- Стаж: 10 лет
- Сообщений: 891
- Репутация:75[+] [-]
|
Использую в 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
- Стаж: 9 лет 1 месяц
- Сообщений: 65
- Репутация: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
- Стаж: 10 лет
- Сообщений: 891
- Репутация:75[+] [-]
|
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% Ниже используется такая же буква, а я не очень понимаю что оно значит....
|
Страница 1 из 94
Текущее время: 21-Ноя 13:54
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|