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

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

Ветеран


Contributor


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

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


Вот вариант с обработкой текстового файла выдачи Вашей программы (для отладки взял из Вашего поста)
Код: Выделить весь код
@Echo Off
cls
	Set "Param=9 194 199 241"
	FOR /F "usebackq tokens=1,2* delims= " %%i IN (`more "Z:\Soft_In\smartctl.txt"`) DO (
		If /I "%%i %%j"=="SMART Error" GoTo :Continue
		For %%p In (%Param%) Do If /I "%%p"=="%%i" Set "Param%%i=%%j %%k" &Set "Str%%i=%%i %%j %%k")
	)
	:Continue

Echo "%Str9%"
Echo   "%Param9%"
Echo:
Echo "%Str194%"
Echo     "%Param194%"
Echo:
Echo "%Str199%"
Echo     "%Param199%"
Echo:
Echo "%Str241%"
Echo     "%Param241%"

pause
Но этого делать не надо. Однозначно надо сразу обрабатывать вывод программы, для чего в For заменить:

(`more "Z:\Soft_In\smartctl.txt"`)
(`c:\Temp\smart\smartctl.exe -a /dev/sda`)

Естественно, не проверялось.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 21-11-2018 в 13:38.


Отправлено: 13:29, 21-11-2018 | #10