[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 7 months
  • Posts: 3246
  • REPUTATION:127

    [+] [-]
Ander_73
Ждет, результат можно проверить по %errorlevel% .

[Quote]

    Ander_73
  • 15549
  • Longevity: 3 years 7 months
  • Posts: 1801
  • REPUTATION:107

    [+] [-]
Как под Win7 получить список содержимого ESD-архива? "Родной" DISM не поддерживает такой формат. Есть замечательная утилита wimlib, но она не понимает русские буквы в тэгах...
После вдумчивого гугленья получен VBS-скрипт (назовём его xml_parser.vbs):
Set oXML = CreateObject("Msxml2.DOMDocument")
oXML.Load(WScript.Arguments(0))
Set nodes = oXML.getElementsByTagName(WScript.Arguments(1))
For Each node In nodes
WScript.Echo node.text
Next
И теперь можно так:
:: получаем из ESD-архива (%file%) содержимое файла-описания в файл xml
wimlib-imagex.exe info "%file%" --extract-xml xml
:: получаем список тэгов <NAME> и записываем в файл list.txt в кодировке 1251 (для WSelect)
for /f "delims=" %%i in ('cscript.exe //nologo xml_parser.vbs xml NAME') do call :getitem
>nul chcp 866
exit
:getitem
if not defined cp >nul chcp 1251& set cp=1
:: трюк с передачей параметра через внутреннюю переменную; позволяет вывести _любые_ символы, в т.ч. кавычки и спец-символы
for %%a in (1) do >>list.txt echo %%i

*Примечание:
  • работает также с WIM и SWM (всё, что поддерживает wimlib)
  • вывести можно список любых тэгов, а не только <NAME>
  • требуется поддержка vbs (применение под WinPE ограничено)

[Quote]

    loban_ser
  • 17796
  • Longevity: 2 years 7 months
  • Posts: 444
  • REPUTATION:10

    [+] [-]
Делал как-то для себя батник, исключительно для удобства тестирования WinPE:
@echo off
cd /d "%~dp0"
If Exist "%~dp0BCD" del /f /q "%~dp0BCD"
for %%I in (*.wim) do call :creat %%~nI %%~nxI
del /q /f /ah "%~dp0*.log" 2>nul 1>&2
Goto eof
:creat
set BCD=bcdedit.exe /store "%~dp0BCD"
If DEFINED %1 goto eof
If NoT Exist "%~dp0BCD" (bcdedit /createstore "%~dp0BCD" 2>nul 1>&2
for /f "tokens=2 delims={}" %%a in ('%BCD% /create {bootmgr} /d "Windows Boot Manager"') do (
      %BCD% /set {%%a} inherit {globalsettings} 2>nul 1>&2
      %BCD% /set {%%a} locale ru_RU 2>nul 1>&2
      %BCD% /set {%%a} PrereleaseSignatures yes 2>nul 1>&2
      %BCD% /set {%%a} nointegritychecks yes 2>nul 1>&2
      %BCD% /set {%%a} loadoptions DDISABLE_INTEGRITY_CHECKS 2>nul 1>&2
      %BCD% /set {%%a} fontpath \_WIM\BOOT\Fonts 2>nul 1>&2
      %BCD% /set {%%a} Timeout 30 2>nul 1>&2
      %BCD% /set {%%a} DisplayOrder {current} 2>nul 1>&2
    )
If Exist "%~dp0BOOT\memtest.exe" (
for /f "tokens=2 delims={}" %%i in ('%BCD% /create {memdiag} /d "Диагностика памяти"') do (
    %BCD% /set {%%i} Device boot 2>nul 1>&2
    %BCD% /set {%%i} Path \_WIM\BOOT\memtest.exe 2>nul 1>&2
    %BCD% /set {%%i} inherit {globalsettings} 2>nul 1>&2
    %BCD% /set {%%i} nointegritychecks yes 2>nul 1>&2
    %BCD% /set {%%i} BadMemoryAccess yes 2>nul 1>&2
    %BCD% /set {%%i} loadoptions DDISABLE_INTEGRITY_CHECKS 2>nul 1>&2
    %BCD% /set {bootmgr} ToolsDisplayOrder {memdiag} 2>nul 1>&2
  )
)
for /f "tokens=2 delims={}" %%j in ('%BCD% /create {ramdiskoptions}') do (
    %BCD% /set {%%j} ramdisksdidevice Boot 2>nul 1>&2
    %BCD% /set {%%j} ramdisksdipath \_WIM\BOOT\boot.sdi 2>nul 1>&2
)
for /f "tokens=2 delims={}" %%k in ('%BCD% /create {bootloadersettings}') do (
    %BCD% /set {%%k} fontpath \_WIM\BOOT\Fonts 2>nul 1>&2
    %BCD% /set {%%k} inherit {globalsettings} 2>nul 1>&2
)
)
for /f "tokens=2 delims={}" %%b in ('%BCD% /create /d ">>> %1" /application osloader') do (
     %BCD% /set {%%b} osdevice ramdisk=[boot]\_WIM\%2,{ramdiskoptions} 2>nul 1>&2
     %BCD% /set {%%b} inherit {globalsettings} 2>nul 1>&2
     %BCD% /set {%%b} locale ru-RU 2>nul 1>&2
     %BCD% /set {%%b} nointegritychecks yes 2>nul 1>&2
     %BCD% /set {%%b} testsigning yes 2>nul 1>&2
     %BCD% /set {%%b} bootmenupolicy legacy 2>nul 1>&2
     %BCD% /set {%%b} loadoptions DDISABLE_INTEGRITY_CHECKS 2>nul 1>&2
     %BCD% /set {%%b} detecthal yes 2>nul 1>&2
     %BCD% /set {%%b} winpe yes 2>nul 1>&2
     %BCD% /set {%%b} path "\Windows\system32\boot\winload.exe" 2>nul 1>&2
     %BCD% /set {%%b} device ramdisk=[boot]\_WIM\%2,{ramdiskoptions} 2>nul 1>&2
     %BCD% /set {%%b} systemroot "\Windows" 2>nul 1>&2
     %BCD% /displayorder {%%b} /addlast 2>nul 1>&2
     %BCD% /set {%%b} nx OptIn 2>nul 1>&2
)
exit /b
Думаю в пояснении не нуждается.
Как использовать:
К примеру имеется двухраздельная флэшка или USB-HDD, создаем папку _WIM на любом разделе вашего накопителя, закидываем свои образы (*.wim) в папку _WIM, запускаем батник auto.bat, будет создан файл BCD, запускаем из Grub4Dos-меню из пункта: "Авто-меню запуска образов из папки _WIM"

Пример:
title  >>> Авто-меню запуска образов из папки _WIM \n По этому пункту будет создано меню загрузки образов.
find --ignore-floppies /_WIM/BOOT/Bootmgr | set p=
chainloader %p%/_WIM/BOOT/GRLDR
Ну а дальше все как по шаблону:

Вообще вот набор, если кому интересно.
aa

[Quote]

    MinskHard
  • 16618
  • Longevity: 3 years 1 month
  • Posts: 19
  • REPUTATION:-1

    [+] [-]
Уважаемые"Гуру" помню где-то видел обсуждали но найти не могу. В шапке есть батник для запуска программы из искомой папки. Код отрабатывает на ура, папку ищет и необходимый exe-ник запускает вот только окно консоли висит пока не закроешь эту программу или саму консоль.
Дописывал в конец кода :end, exit ничего не помогает, подскажите пожалуйста, или тыкните носом где обсуждали это !

[Quote]

    vovan1982
  • 214
  • Longevity: 5 years 7 months
  • Posts: 1006
  • REPUTATION:65

    [+] [-]
  • Location: Ростов-на-Дону
MinskHard, так вы параметр /w (ждать завершения выполнения) уберите
start /w %PUH%\wind\setup64.cmd
Нужно так
start %PUH%\wind\setup64.cmd


Last edited by vovan1982 on 2019-07-13 22:52; edited 1 time in total

[Quote]

    MinskHard
  • 16618
  • Longevity: 3 years 1 month
  • Posts: 19
  • REPUTATION:-1

    [+] [-]
Огромное спасибо, всё получилось !

Page 6 of 6


Display posts:    

Current time is: 19-Sep 10:59

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