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

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

Ветеран


Contributor


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

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


Если выдать принтер по задаваемому условию, то:
Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\printer.txt"

	Set "names_comp=\SPIDER-03"
	Set "name_print=Canon LBP6020"

	Set /A N=100
	FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul FindStr /I /C:"names_comp" /C:"name_print" /C:"caunt_other_cartridg" "%FileIn%"`) DO (
		If /I "%%i"=="names_comp" (Set /A N+=1 &Set "Out=")
		Call Set "Out=%%Out%%%%j "
		Call Set "@@%%N%%=%%Out%%"
	)
	FOR /F "usebackq tokens=2 delims==" %%i IN (`2^>nul Set "@@" ^|FindStr /I /C:"%names_comp% %name_print%"`) DO Echo %%i
Pause
Exit /B 0
Если отобразить все принтеры, то:
Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\printer.txt"

	Set /A N=100
	FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul FindStr /I /C:"names_comp" /C:"name_print" /C:"caunt_other_cartridg" "%FileIn%"`) DO (
		If /I "%%i"=="names_comp" (Set /A N+=1 &Set "Out=")
		Call Set "Out=%%Out%%%%j "
		Call Set "@@%%N%%=%%Out%%"
	)
	FOR /F "usebackq tokens=2 delims==" %%i IN (`2^>nul Set "@@"`) DO Echo %%i
Pause
Exit /B 0

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


Последний раз редактировалось megaloman, 02-05-2022 в 07:43.

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:30, 02-05-2022 | #2