[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 4 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
НЕ совсем уверен что правильно написал....
ak Я в этом вообще не разбираюсь. Мысль понял.
Смущает вот это: 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%
Мне кажется тут I это переменный индекс цикла проверки. Но вот что дальше, не понимаю.

[Quote]

    Ander_73
  • 15549
  • Longevity: 8 years
  • Posts: 3916
  • REPUTATION:127

    [+] [-]
puhpol, простите, что вмешиваюсь
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%
Смысл этой строки - поиск устройства. Т.е. после команды dir надо проверять errorlevel.
Например, так:
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 OEMPath=%%I:%n%&goto Success)
echo Устройство не найдено!&exit
:Success
Теперь у нас в переменной OEMPath находится полный путь к $OEM$

[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 4 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
Теперь у нас в переменной OEMPath находится полный путь к $OEM$
В таком случае, во второй части скрипта
if exist %n%\$OEM$\nul SET OEM=/m:%n%\$OEM$
как должно быть?

[Quote]

    vovan1982
  • 214
  • Longevity: 10 years
  • Posts: 1139
  • REPUTATION:78

    [+] [-]
  • Location: Ростов-на-Дону
puhpol, да на скорую руку сваял. Да нужно поиск организовать.

[Quote]

    Ander_73
  • 15549
  • Longevity: 8 years
  • Posts: 3916
  • REPUTATION:127

    [+] [-]
У нас получился сломанный телефон. Я ответил puhpol, а он просто вырвал строку из правильного контекста :)
Проблема исходных скриптов в том, что они жёстко задают путь поиска. А именно:
SET DD=_WIN
SET MM=1032
SET IN=NI
...
set IP=%%I:\!DD!\!MM!
То есть мы ВСЕГДА ищем install.* по пути X:\_WIN\1032\

[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 4 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
@echo off
setlocal enabledelayedexpansion
SET n=Sources
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 OP=%%I:%n%&goto Success)
echo Could not find oem folder!&exit
:Success

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 %OP%\OEM\nul SET OEM=/m:%OP%\OEM
if exist %OP%\$OEM$\nul SET OEM=/m:%OP%\$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
Вот в таком виде не подхватывает папку оем.

[Quote]

    vovan1982
  • 214
  • Longevity: 10 years
  • Posts: 1139
  • REPUTATION:78

    [+] [-]
  • Location: Ростов-на-Дону
mlevon, и не подхватит. Забыл слэш поставить
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 OP=%%I:\%n%&goto Success)

[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 4 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
A нижняя часть в норме?
if exist %OP%\OEM\nul SET OEM=/m:%OP%\OEM
if exist %OP%\$OEM$\nul SET OEM=/m:%OP%\$OEM$

[Quote]

    Ander_73
  • 15549
  • Longevity: 8 years
  • Posts: 3916
  • REPUTATION:127

    [+] [-]
\nul убери
или замени на >nul

[Quote]

    vovan1982
  • 214
  • Longevity: 10 years
  • Posts: 1139
  • REPUTATION:78

    [+] [-]
  • Location: Ростов-на-Дону
Ander_73, зачем \nul убирать? Это значит идет проверка наличия папки, а не файла.

[Quote]

    Ander_73
  • 15549
  • Longevity: 8 years
  • Posts: 3916
  • REPUTATION:127

    [+] [-]
зачем \nul убирать? Это значит идет проверка наличия папки, а не файла.
Просто бессмысленная конструкция, if exist не отличает папки от файла.
Впрочем, мой совет про >nul - такой же ab

[Quote]

    puhpol
  • 2
  • Longevity: 10 years
  • Posts: 891
  • REPUTATION:75

    [+] [-]
Господа Спасибо, Я вас понял.
mlevon
Значит мой вариант должон отработать.
З.Ы. Они вам сейчас весь мозг склюют. И из скрипта в две строки сделают 20. al

[Quote]

    puhpol
  • 2
  • Longevity: 10 years
  • Posts: 891
  • REPUTATION:75

    [+] [-]
39998То есть мы ВСЕГДА ищем install.* по пути X:\_WIN\1032\
Бред какой -то, С чего вы взяли X: .....
Спорить не буду, я ламер.

[Quote]

    Ander_73
  • 15549
  • Longevity: 8 years
  • Posts: 3916
  • REPUTATION:127

    [+] [-]
puhpol, Х - надо же было чем-то заменить букву диска ag
А всё остальное - из тела скрипта.

[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 4 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
В 1 сообщении подправленный 2 код. Тестил, работает.

Page 2 of 94


Display posts:    

Current time is: 14-Feb 01:22

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