|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск нескольких строк в файле и запись их в переменную |
|
|
CMD/BAT - [решено] Поиск нескольких строк в файле и запись их в переменную
|
Пользователь Сообщения: 64 |
Профиль | Отправить PM | Цитировать
Всем привет. Помогите пожалуйста разобраться с поиском информации в wim-файле.
Не хитрыми действиями достал почти всю инфу о содержимом файла, кроме имеющихся языков. Нужно осуществить поиск всех имеющихся языков в образе при помощи Dism и вывести их список. Пример поиска для ясности вопроса:
@echo off
cls :inform for /f "tokens=* delims=: " %%c in ('Dism.exe /English /Get-WimInfo /WimFile:"C:\install.wim" /Index:1 ^| findstr /i Languages') do (set ImgLanguages=%%c) echo. echo Список языков: %ImgLanguages% pause Если таким способом искать индекс, имя или другую информацию, то никаких проблем не возникает. Но с языками дело обстоит иначе. В "findstr" искомое слово "Languages" после себя не содержит никаких данных, все данные (список имеющихся языков) расположены на строках ниже(в столбик). Вот тут я и споткнулся. Как вывести список языков расположенных ниже "Languages" и записать их в переменную(ые)? Прикреплю скрин отображения информации в Dism. |
|
Отправлено: 23:39, 13-02-2019 |
(*.*) Сообщения: 36554
|
Профиль | Сайт | Отправить PM | Цитировать Alex S, в PowerShell
https://docs.microsoft.com/powershel...?view=win10-ps Результат
[PS <4> C:\…\system32] Get-WindowsImage -imagepath "E:\sources\install.wim" -index 1 ImageIndex : 1 ImageName : Windows 10 Домашняя ImageDescription : Windows 10 Домашняя ImageSize : 14*337*146*177 bytes WIMBoot : False Architecture : x64 Hal : Version : 10.0.17763.107 SPBuild : 107 SPLevel : 0 EditionId : Core InstallationType : Client ProductType : WinNT ProductSuite : Terminal Server SystemRoot : WINDOWS DirectoryCount : 20320 FileCount : 91910 CreatedTime : 30.10.2018 2:17:06 ModifiedTime : 30.10.2018 2:46:59 Languages : ru-RU (Default) [PS <5> C:\…\system32] (Get-WindowsImage -imagepath "E:\sources\install.wim" -index 1).languages ru-RU |
------- Отправлено: 01:16, 14-02-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать За неимением на чем показать - так:
file.txt Скрытый текст
stroka1 : z1 stroka2 : z2 Languages : [tab]en-US [tab]ru-RU (Default) The operation ... код @echo off for /f "delims=" %%a in ('findstr /rc:"^ " "file.txt"') do call :# "%%~a" echo %A: =% echo %B: =% pause& exit :# set "A=%B%" set "B=%~1" exit /b Скрытый текст
en-US ru-RU (Default) |
Отправлено: 01:40, 14-02-2019 | #3 |
Пользователь Сообщения: 64
|
Профиль | Отправить PM | Цитировать Пробовал так, результата нет:
for /f "delims=" %%a in ('DISM /English /Get-WimInfo /WimFile:"C:\install.wim" /Index:1 ^| findstr /rc:"^ "') do call :# "%%~a" При использовании такого способа: for /f "tokens=2 delims=:<> " %%a in ('Imagex.exe /info "C:\install.wim" 1 ^| findstr /i Language') do call :# "%%~a" . Остается вопрос, как убрать лишнее из окна вывода(знак равно), ну и что будет если языков будет больше? |
Отправлено: 10:42, 14-02-2019 | #4 |
Crazy Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Alex S:
Ну, если прям надо именно cmd, то: for /f "delims=" %%a in ( 'dism /english /get-imageinfo /imagefile:"d:\install.wim" /index:1 ^|findstr /i "ru-ru en-us en-gb de-de fr-ca zu-za"' ) do echo %%~a MS-LCID |
||
------- Отправлено: 13:10, 14-02-2019 | #5 |
Пользователь Сообщения: 64
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:24, 14-02-2019 | #6 |
(*.*) Сообщения: 36554
|
Профиль | Сайт | Отправить PM | Цитировать Alex S, установите WMF 5.1 https://www.microsoft.com/en-us/down....aspx?id=54616
У вас древняя версия пошика |
Отправлено: 15:20, 14-02-2019 | #7 |
Crazy Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Alex S:
? Цитата Vadikan:
@echo off set "wim=d:\install.wim" >nul 2>&1 net session||(echo.Запустите батник от имени админа&pause&exit /b) set /a "i=1" for /f "delims=" %%a in ( 'dism /english /get-imageinfo /imagefile:"%wim%" /index:1 ^|findstr /i "ru-ru en-us en-gb de-de fr-ca zu-za"' ) do call :# %%~a set x pause&exit /b :# set "x%i%=%~1" set /a "i+=1" exit /b |
||
------- Отправлено: 15:30, 14-02-2019 | #8 |
Пользователь Сообщения: 64
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:04, 14-02-2019 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Alex S:
Цитата YuS_2:
|
||
Отправлено: 17:25, 14-02-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск строк в файле и запись в новый файл | vision-d | Скриптовые языки администрирования Windows | 17 | 06-10-2016 09:14 | |
CMD/BAT - Поиск цифр в текстовом файле и последующий их поиск в названии файлов массива (лог.) | antares_80@vk | Скриптовые языки администрирования Windows | 10 | 25-10-2015 11:34 | |
CMD/BAT - Проверка наличия нескольких строк в файле | V!RTuE | Скриптовые языки администрирования Windows | 10 | 08-09-2014 05:08 | |
CMD/BAT - Поиск строк в файле и замена их на числа,сгенерированные по маске. | galclerik | Скриптовые языки администрирования Windows | 17 | 19-12-2013 11:59 | |
CMD/BAT - Замена нескольких строк в файле | bcubbs@fb | Скриптовые языки администрирования Windows | 3 | 24-01-2013 14:01 |
|