Войти

Показать полную графическую версию : [решено] Включение/отключение устройств одним .bat файлом


Страниц : 1 [2]

alpap
30-03-2019, 15:37
лучше сделать проще »
чем решение в одну строку на cmd?
решение поставленной задачи в рамках devcon »
какие рамки вас смущают? Начнем с того что с devcon вы работаете в рамках cmd и задачу я решил тоже в этих же рамках cmd - так в чем проблема?

VasyaOK
30-03-2019, 15:59
Цитата alpap:
чем решение в одну строку на cmd? »
Тем, что работает. А "решение в одну строку на cmd" - нет. Только этим ;). Вот, что выдаётся:No matching devices found.
Для продолжения нажмите любую клавишу . . .Кстати, 'pause' можно убрать - я запускаю все подобные вещи через FAR; ошибки мне прекрасно видны...
Цитата alpap:
какие рамки вас смущают? Начнем с того что с devcon вы работаете в рамках cmd и задачу я решил тоже в этих же рамках cmd - так в чем проблема? »
на машине с несколькими сетевками с однотипным чипсетом DEVCON у меня выключал все сетевки, хотя просили только одну - такие вот спецэффекты...
Ссылку я уже выше приводил...
Нет, если получится (с DEVCON) я не возражаю - боже упаси! Просто мне кажется, CNIC - не случайно возник ;). Такая вот рифма.

alpap
30-03-2019, 16:29
VasyaOK, какой вывод этого?

@echo off
for /f "delims=:" %%a in ('devcon.exe find "PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02"^|find /v "matching"') do (
echo "%%a"
)
pause

VasyaOK
30-03-2019, 16:34
alpap,

"PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02\4&2E680ECD&0&00E5"
"PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02\4&525529E&0&00E4"

alpap
30-03-2019, 16:37
значит так выводит нужную строку, так?

@echo off
for /f "delims=:" %%a in ('devcon.exe find "PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02"^|find /v "matching"') do (
<nul set /p="%%a"|>nul findstr /e "E4" && echo "%%a"
)
pause

VasyaOK
30-03-2019, 16:48
alpap,
"PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02\4&525529E&0&00E4"
А мне нужно отключать
"PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02\4&2E680ECD&0&00E5"

alpap
30-03-2019, 17:10
VasyaOK,
ну поменяйте E4 на E5, но "PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02\4&2E680ECD&0&00E5" это именно ID? Иначе отключит только по "PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02", а сюда обе строки попадают.

Iska
30-03-2019, 17:31
VasyaOK, даже не знаю, что посоветовать.

У меня, кстати, точно так же. Пока я задаю в команде «devcon.exe find» только Hardware ID — ищет и находит:

https://i.imgur.com/6KCREjm.png

Как только я пытаюсь добавить к Hardware ID ещё и Instance ID конкретного устройства:

PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_0C\4&1DCB0711&0&00E2
Name: Realtek PCIe GBE Family Controller
Hardware IDs:
PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_0C
PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458
PCI\VEN_10EC&DEV_8168&CC_020000
PCI\VEN_10EC&DEV_8168&CC_0200
Compatible IDs:
PCI\VEN_10EC&DEV_8168&REV_0C
PCI\VEN_10EC&DEV_8168
PCI\VEN_10EC&CC_020000
PCI\VEN_10EC&CC_0200
PCI\VEN_10EC
PCI\CC_020000
PCI\CC_0200


— увы и ах:

https://i.imgur.com/vasp5tD.png

В связи с чем возникает вопрос — а умеет ли работать DevCon с Instance ID в принципе? Либо это я что-то не так делаю?

VasyaOK
30-03-2019, 17:51
ну поменяйте E4 на E5 »
Не очень понял, чего менять...
но "PCI\VEN_10EC&DEV_8168&SUBSYS_E0001458&REV_02\4&2E680ECD&0&00E5" это именно ID? »
Ну, конечно - их всего 2-е строки.
Так как будет выглядеть команда на отключение?

Iska,

Повторюсь: http://www.nncron.ru/forums/viewtopic.php?p=17887&sid=b705da0b47ed365f78394b028d571dc1#p17887

alpap
30-03-2019, 18:32
VasyaOK, проверил ваш cnic, да, так отключает (по имени):

cnic.exe "Имя адаптера (сетевого подключения)" -d

VasyaOK
30-03-2019, 18:38
VasyaOK, проверил ваш cnic, да, так отключает (по имени) »
Он не мой, а M$ ;) И чего бы ему не работать - его специально для этого сделали. Видать, когда с DEVCON прокололись.
А мне бы, в сою очередь, хотелось бы проверить ваш cmd ;)
Если это возможно, конечно.

alpap
30-03-2019, 18:52
вот как будет работать вариант с отключением по номеру с помощью cnic

@echo off
for /f "tokens=1,2* delims=- " %%a in ('cnic.exe -l^|find "-"') do echo %%a [%%b] [%%c]
:: Например по номеру
:: cnic.exe n:0 -d
pause

и да, в имени сетевого подключения не должно быть пробелов иначе вывод информации будет неправильный (но cnic.exe n:НОМЕР -d отработает правильно).
если есть пробелы в имени сетевого подключения, то просто посмотреть или еще как использовать имя подключения и имя адаптера можно так

@echo off
for /f "tokens=1* delims=- " %%A in ('cnic.exe -l^|find "-"') do for /f "tokens=1* delims=- " %%a in ("%%B") do echo %%A [%%a] [%%b]
pause


А мне бы, в сою очередь, хотелось бы проверить ваш cmd »
я же написал - отключит только по Hardware ID, а у вас там две строки, т.е. вероятнее всего вырубит и E4 и E5

Iska
30-03-2019, 21:23
VasyaOK, насколько я понимаю, cnic.exe работает как работало отключение/подключение сетевого соединения в Windows XP, а devcon.exe работает как отключение/подключение в Windows 7, где «отключение» вызывает отключение не соединения, а самого устройства. Если Вам на самом деле нужно отключение/подключение сетевого соединения, а не устройства, то, разумеется, пользуйте cnic.exe (например, «засунув» его вызов в User Menu Far Manager'а).

Он не мой, а M$ И чего бы ему не работать - его специально для этого сделали. Видать, когда с DEVCON прокололись. »
Если мне не изменяет память, cnic.exe — куда более старая утилита, нежели DevCon.

VasyaOK
01-04-2019, 07:26
Если Вам на самом деле нужно отключение/подключение сетевого соединения, а не устройства, то, разумеется, пользуйте cnic.exe (например, «засунув» его вызов в User Menu Far Manager'а). »
Да мне, на самом деле, "до без разу" - работает, да и ладно ;).
Если мне не изменяет память, cnic.exe — куда более старая утилита, нежели DevCon. »
Может быть - не спорю. У них там косяк на косяке ;)
вот как будет работать вариант с отключением по номеру с помощью cnic »
Я имел ввиду вариант с DEVCON - то, что с помощью cnic работает без проблем - давно известно. Просто вариант на предыдущей странице, конкретно вот этот:
http://forum.oszone.net/post-2865970-25.html
выводит одну строку, правда не ту. У меня тогда возможности не было проверить, показалось что "решение близко". Сейчас вот проверил: ну да, замена "Е4" на "Е5" выводит нужную строку. Только толку-то от этого? Насколько я понимаю, проблему отключения именно Е5 это не решает, а значит, DEVCON - это НЕРАБОЧЕЕ РЕШЕНИЕ. На этом и закончим, пожалуй. Если, конечно у вас нет вариантов именно с DEVCON.

alpap
01-04-2019, 21:57
Только толку-то от этого? »
совершенно верно.
нет вариантов именно с DEVCON »




© OSzone.net 2001-2012