Вы должны войти, чтобы создавать сообщения и темы.

Скрыть отображение ошибки

Всем привет, есть код

for /f "delims=" %%i IN ('2^>nul REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Classes" /f ".*"') DO (
2>nul REG QUERY "%%i" /s /f "edge"
if !errorlevel! == 0 (
for /F "usebackq delims=" %%y In (`2^>nul REG QUERY "%%i" /f "MSEdge*" /k`) Do (
for /F "usebackq tokens=1" %%a IN (`2^>nul REG QUERY "%%i" /s ^| findstr /ic:"edge"`) DO (2>nul reg delete "%%i\OpenWithProgIds" /v "%%a" /f >nul 2>&1)
)))

Он не находя строчку, выводит ошибку: End of search: 0 match(es) found.
Я как ни пытался скрыть ошибку, у меня не получалось
Помогите пожалуйта

Добрый🖐.
Где тут ошибка?, перебирает ветки реестра, и сообщает "Поиск завершен: найдено совпадений: 0", идет искать дальше и так до конца, сообщая.
Команда работает ровно так, как и написана.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 18.09.2022, 03:02

Добрый🖐.
Где тут ошибка?, перебирает ветки реестра, и сообщает "Поиск завершен: найдено совпадений: 0", идет искать дальше и так до конца, сообщая.
Команда работает ровно так, как и написана.

Здравствуйте, вы не так поняли, мне нужно чтоб эти команды вообще в конце ничего не говорили

Ну он же перебирает реестр, если нет, сообщает, а что он должен выводить, просто пустое cmd?, так не получиться(только минимизировать можно с помощью @echo off), тогда проще завернуть в exe его и скрыть консоль вообще.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 18.09.2022, 10:07

Ну он же перебирает реестр, если нет, сообщает, а что он должен выводить, просто пустое cmd?, так не получиться(только минимизировать можно с помощью @echo off), тогда проще завернуть в exe его и скрыть консоль вообще.

Есть же скрытие с помощью перенаправления вывода >nul 2>&1  Но, он почему-то не работает.

Вот есть другой код, тут всё работает, и ничего не видно

for  /f "delims=" %%i IN ('2^>nul REG QUERY "HKEY_USERS\%sidinf%\SOFTWARE\Classes" /f "*"') DO (
REG QUERY "%%i\Application" /f "edge" >nul 2>&1
if !errorlevel! == 0 reg delete "%%i" /f  >nul 2>&1
)

 

Нашёл решение сам

for  /f "delims=" %%i IN ('2^>nul REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Classes" /f ".*"') DO (
REG QUERY "%%i" /s /f "edge" >nul 2>&1
if !errorlevel! == 0 (
for /F "usebackq delims=" %%y In (`2^>nul REG QUERY "%%i" /f "MSEdge*" /k`) Do (
for /F "usebackq tokens=1" %%a IN (`2^>nul REG QUERY "%%i" /s ^| findstr /ic:"edge"`) DO (reg delete "%%i\OpenWithProgIds" /v "%%a" /f >nul 2>&1 && echo ok)
)))

2>nul REG QUERY "%%i" /s /f "edge" нужно было заменить на REG QUERY "%%i" /s /f "edge" >nul 2>&1
И всё
Считаю тему закрытой

Или просто дописать Скопировано>nul 2>&1 в конце Скопировано))) тройных скобок, а не внутри скобок(внутри убрать).
P.S я вот не знал, в справе за 5 мин разобрался.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн