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

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

09.03.2016, 18:44. Показов 4457. Ответов 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
 Аватар для volodin661
7154 / 2342 / 354
Регистрация: 10.12.2013
Сообщений: 8,124
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
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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 и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru