Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Alex S

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Появился ещё один вопрос, понимаю что не по теме, но он мелкий и не хочется из-за него тему создавать.
Не совсем я понял как происходит поиск информации и запись её в переменную. Слишком много информации из статей и справок в самом начале. Голова закипела...

После поиска файлов Boot.wim, по плану идет выбор одного из обнаруженных и вывод краткой информации о содержимом файла.
Вывод инфы не проблема, делается стандартными командами Dism.exe, но по мимо всего из общей информации о wim-файле нужно найти общее количество записей содержащих слово Index, точнее определить количество индексов и записать их в переменную.
Для чего это? После вывода краткой информации нужно ввести индекс одной из имеющихся редакций для дальнейшего её монтирования, а если введена неверная цифра индекса (условие сравнивается с переменной содержащей общее количество индексов), то ловим осиновый кол и идем на вторую попытку ввода...
Ниже, для ясности приведу краткий пример:
Пример
@echo off
MODE CON COLS=80 LINES=35
set "BootFile=%SYSTEMDRIVE%\Work\Image\sources\Boot.wim"

:wim_info
echo.============================ Содержимое wim-файла =============================
dism /English /LogLevel:1 /Get-WimInfo /WimFile:%BootFile%
echo.===============================================================================

set /p Indx=Введите индекс редакции для продолжения:
if %Indx% GTR 0 if %Indx% LEQ 24 goto :mount_wim
if %Indx% GTR 24 (echo Не существует индекса редакции с таким номером) & Pause>nul|(echo Нажмите любую клавишу чтобы повторить попытку ввода) & goto :wim_info

:mount_wim
echo Mount...
Pause
Exit


Тут как общее число индексов указана цифра 24, но сколько их там на деле неизвестно. Вместо нее сравнение должно брать цифру(общее количество индексов) из переменной, в которой содержится точное число имеющихся. Если больше имеющихся, то смс-ка и на второй круг.

Пробовал так:
Пример поиска индексов:
for /f "tokens=2 delims=: " %%a in ('DISM /Get-WimInfo /WimFile:%BootFile% ^| findstr /i Index') do (set Image_Index=%%a)

Но что-то видать не так делаю...

Отправлено: 14:14, 10-02-2019 | #15