Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660

Как избавиться от символов \??\ в выводе списка драйверов wmic?

09.03.2016, 18:44. Показов 4381. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую

Есть скрипт:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set TAG=????
 
if "%TAG%"=="????" set /p "TAG=Введите тег для поиска: "
for /f "tokens=2 delims==" %%i in ('"wmic sysdriver get PathName /value"') do (
    for /f "delims=" %%j in ("%%i") do (
        strings "%%~j" | findstr /i "%TAG%">nul && echo %%j
))
echo.
pause
Суть - ищет определенные теги в используемых в данный момент системой драйверах с использованием программы strings

Но в выводе wmic sysdriver get PathName /value иногда попадается вот такое безобразие \??\ (строки 16 и 19)
Пример вывода:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PathName=C:\Windows\system32\drivers\wimmount.sys
 
 
PathName=C:\Windows\system32\drivers\wmiacpi.sys
 
 
PathName=C:\Windows\system32\drivers\ws2ifsl.sys
 
 
PathName=C:\Windows\system32\drivers\WudfPf.sys
 
 
PathName=C:\Windows\system32\DRIVERS\WUDFRd.sys
 
 
PathName=\??\C:\Program Files\Process Hacker 2\kprocesshacker.sys
 
 
PathName=\??\C:\Windows\system32\drivers\myfault.sys
strings такое безобразие игнорирует.


Если убрать \??\, то проблем нет
Вопрос:
Как избавится от \??\ сохранив работоспособность скрипта ?

Заранее благодарю.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2016, 18:44
Ответы с готовыми решениями:

Лишняя строка в выводе Wmic
Не очень понял из мануалов, буду благодарен, если кто доступным языком объяснит как выводит (и можно ли это изменить) wmic. На примере...

Как избавиться от погрешности при выводе double?
После того, как считал строку "3,2", перевожу во float, затем складываю с другим числом и получаю хрень непонятную что-то вроде 1,2+2=...

Как избавиться от мерцания при выводе массива?
вообщем есть массив 20x50. и его нужно часто выводит на консоль и происходит мерцание. что можно сделать чтоб его не было?

41
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
10.03.2016, 13:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от vavun Посмотреть сообщение
Я не знаю что это \??\, но память подсказывает, что я где то когда то что то такое читал это не ошибка.
\??\ - это не ошибка, это валидная часть файлового пути в Windows.
Если заглянуть в раздел HKLM\SYSTEM\CurrentControlSet\Services, то там
можно найти много драйверов, у которых ImagePath начинается с
такого префикса. Ну то есть, это нормально.
1
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 16:46  [ТС]
Знать бы для чего это )
то, что это не ошибка под сомнение не ставится
0
Нарушитель
7168 / 2337 / 353
Регистрация: 10.12.2013
Сообщений: 8,095
10.03.2016, 17:59
я предлагаю немедленно тут же взять и отправить коллективное письмо
биллу гейтсу.
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 18:07  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
Чего не так?
Можно и так, приколько, спасибо

Добавлено через 2 минуты
А как это работает ?
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 18:13  [ТС]
Неа, так просто не выйдет.
wmic гадит своим выводом

Windows Batch file
1
2
3
4
@echo off
 
for /f "tokens=2,* delims==?" %%i in ('wmic sysdriver get PathName /value^|find "="') do (echo strings "%%i%%j")
pause


Так что от двойного for не уйти )
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 18:22
Цитата Сообщение от vavun Посмотреть сообщение
А как это работает ?
, delimsом, кроме = отрезаю и ?\\, а чтобы не потерялись дальнейшие \\, добавляю еще токен *, который вбирает в себя все после дележки.

Добавлено через 2 минуты
Цитата Сообщение от vavun Посмотреть сообщение
Так что от двойного for не уйти
, я нигде и не говорил что не потребуется, просто в fore проще сразу вытащить что надо, если есть возможность, чем потом из переменных еще выколупывать.

Добавлено через 1 минуту
Но у меня, кстати, и без второго выводит нормально.
1
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 18:25  [ТС]
допустим.

А как это все вписать в первый for из двух ?

У вас есть такая конструкция, как %%i%%j

Вот тут я и запнулся.

Добавлено через 53 секунды
Цитата Сообщение от alpap Посмотреть сообщение
Но у меня, кстати, и без второго выводит нормально.
А вы попробуйте имитацию боевого варианта с кавычками. Получится как у меня на скрине
0
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 842
10.03.2016, 18:51
к сожалению, здесь нужно ещё подрихтовать, т.к. строка
Цитата Сообщение от alpap Посмотреть сообщение
Windows Batch file
1
for /f "tokens=2,* delims==?\" %%i in ('wmic sysdriver get PathName /value^|find "="') do echo.%%i%%j
построит такой вывод:
Code
1
C:Windows\system32\DRIVERS\...
т.е. после символа %systemdrive% (в данной конфигурации это с:) нужно добавить обратный слэш
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 18:56
Лучший ответ Сообщение было отмечено vavun как решение

Решение

vavun, Да, слеш забыл, спасибо b0gus, а так все работает:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
 
set "TAG=????"
 
if "%TAG%"=="????" set /p "TAG=Введите тег для поиска: "
for /f "delims=" %%a in ('wmic sysdriver get PathName /value^|find "="') do (
 for /f "tokens=2,* delims==?" %%i in ("%%a") do (
  set "STR=%%i\%%j"
  cmd /v /c "echo "!STR!" | findstr /i "%TAG%">nul && echo %%i\%%j"
))
echo.
pause
.

Добавлено через 2 минуты
strings
1
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 18:58  [ТС]
Упс )


Строчку вида
Code
"\\\C:\Windows\system32\drivers\myfault.sys"
strings не переварит
0
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 842
10.03.2016, 19:02
Цитата Сообщение от vavun Посмотреть сообщение
Строчку вида
движок форума пожирает \
должен быть такой delims==?\ в 7-й строке кода alpap
2
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 19:08
Цитата Сообщение от b0gus Посмотреть сообщение
движок форума пожирает \
, все время забываю об этом, выше удваивал.
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 19:10  [ТС]
Вроде работает такой вариант )


Вывод передаваемый strings чистый
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 19:12  [ТС]
А зачем |find "=" если в выводе wmic sysdriver get PathName /value ничего другого и не бывает ?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 19:13
А что за команда
Windows Batch file
1
strings
? У меня нет такой, echo ставил.
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 19:14  [ТС]
Упростил

Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
 
set "TAG=ntfx"
 
for /f "delims=" %%a in ('wmic sysdriver get PathName /value') do (
    for /f "tokens=2,* delims==?\" %%i in ("%%a") do (
        strings "%%i\%%j" | findstr /i "%TAG%">nul && echo %%i\%%j
))
echo.
pause
Миниатюры
Как избавиться от символов \??\ в выводе списка драйверов wmic?   Как избавиться от символов \??\ в выводе списка драйверов wmic?  
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 19:15  [ТС]
alpap, я в первом посте на неё ссылку давал, вот
Цитата Сообщение от vavun Посмотреть сообщение
Суть - ищет определенные теги в используемых в данный момент системой драйверах с использованием программы strings
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 19:15
Цитата Сообщение от vavun Посмотреть сообщение
А зачем |find "="
, во-первых так быстрее, во-вторых не надо убирать лишние строки skipом, обычно при value и csv, skip=2.
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
10.03.2016, 19:16  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
во-вторых не надо убирать лишние строки skipом
Да вроде и так не надо
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 19:19
Цитата Сообщение от vavun Посмотреть сообщение
я в первом посте на неё ссылку давал, вот
- ага, а я думал опечатка (ошибка).

Добавлено через 1 минуту
Цитата Сообщение от vavun Посмотреть сообщение
Да вроде и так не надо
, в файле по идее должны появиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2016, 19:19

Как избавиться от экспоненциального вида при выводе числа
Вот программа, которая вычисляет факториалы чисел от 0 до 20. Факториал для чисел от 10 до 20 представляется в экспоненциальной форме. Как...

Как избавиться от служебных символов в Word-е?
Смысл вот в чем, есть таблица(в Ворде) данные из которой надо обработать. В каждой ячейке таблицы встречается множество служ. символов...

Как избавиться от лишних символов в строке
Помогите,пожалуйста.Битый час ломаю голову. Почему строку p выводит с заколючками? int main() { setlocale(LC_ALL,...

Как избавиться от управляющих символов при чтении из файла?
кто знает как избавиться от управляющих символов при чтении из файла using System; using System.Text; using System.Threading; ...

Как убрать лишние символы при выводе в консоль списка файлов?
Поясните, пожалуйста. Собираю кроссплатформенные методы, для работы с файлами. Взял для разбора такой метод. Всё работает, только вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru