Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Проверка состояния Wi-Fi и уровня его сигнала (http://forum.oszone.net/showthread.php?t=346961)

wareznik3dll 07-11-2020 23:21 2939069

Проверка состояния Wi-Fi и уровня его сигнала
 
Вложений: 1
Есть код для проверки состояния Wi-Fi и уровня его сигнала:

Скрытый текст
Код:

@Echo Off
SetLocal EnableExtensions & REM Использование дополнительных ключей.
Chcp 1251 >Nul
Title Проверка состояния Wi-Fi и уровня его сигнала.
Mode Con: Cols=78 Lines=9
Set Count=1
:Check
For %%n In ("Имя" "Состояние:" " SSID" "Сигнал") Do (
        For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces ^| Find /i %%n') Do (
                If %%n=="Имя" (
                        Set "Name=%%b"
                        )
                If %%n=="Состояние:" (
                        Set "State=%%b"
                        )
                If %%n==" SSID" (
                        Set "SSID=%%b"
                        )
                If %%n=="Сигнал" (
                        Set "Signal=%%b"
                        )
                )
        )
Echo Проверок  : %Count%
Echo.
Echo Имя      : %Name%
Echo SSID      : %SSID%
Echo Состояние : %State%
Echo Сигнал    : %Signal%
Echo.
Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
Set /a Count+=1
  Pause >Nul
Goto Check



Вопрос: Как получить более чувствительные данные, а то замечаю инфа очень медленно обновляется и вовсе не точно по сравнении с программой "Wi-Fi Scanner"?

Скорость не важна
Важно: только четыре строчки "Имя, SSID, Состояние, Сигнал, Наглядный (не разбросанный) обзор выводимой инфы ну и наипростейший код".
Менее важно: "Количество проверок, Дата и Время конечной проверки и Только нужный размер окна консоли".
Наименее важно: "Заголовок окна консоли".
Ну и если получится (очень важно) рабочий код написанный с использованием кодовой таблицы 65001 (UTF-8) то-есть код должен быть сохранен именно в этой кодировке.

Благодаря всем неравнодушным резальтат был добит таким кодом:

Русская версия (исправленная 24.11.2020)
Код:

@Echo Off
REM WLAN (Wireless Local Area Network) — беспроводная локальная сеть.
REM Wi-Fi (Wireless Fidelity) — это название торгового бренда, которое используется для обозначения устройств, подключаемых к беспроводной сети.
REM Чаще всего термин WiFi рассматривается как синоним WLAN.
Chcp 65001 >Nul
        REM Получение нужного размера окна
Mode Con: Cols=80 LInes=43
Title Вывод информации о подключенной WLAN (русская версия).
        REM Указание размещения файла с базой данных
Set "DataBase=DataBase.txt"
REM Set "DataBase=DataBaseRus.txt"
Set Count=1

:Check
SetLocal EnableExtensions
        REM Строки для физического и виртуального (с подменой Netsh Wlan Show Interfaces на когда-то полученные) тестирований
REM For /f "Eol=; Tokens=1-3*" %%a In (WiFi2.txt) Do Set "A1=%%a"& Set "B2=%%b"& Set "C3=%%c"& Set "D4=%%d"& Call :M1
For /f "Tokens=1-3*" %%a In ('Netsh Wlan Show Interfaces') Do Set "A1=%%a"& Set "B2=%%b"& Set "C3=%%c"& Set "D4=%%d"& Call :M1
        REM Перевод строк которые можно перевести
If "%Interface%"=="There is no wireless interface on the system." Set "Interface=Беспроводной интерфейс в системе отсутствует."
If "%Interface%"=="The Wireless AutoConfig Service (wlansvc) is not running." Set "Interface=Служба автонастройки беспроводной сети (wlansvc) не запущена."
If "%Interface%"=="There is 1 interface on the system:" Set "Interface=В системе 1 интерфейс:"
If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%Interface:~10%"& Call :M3
If "%Interface%"=="There are %N% interfaces on the system:" Set "Interface=В системе %N% интерфейс%Ending%:"
If "%State%"=="connected" Set "State=Подключено"
If "%State%"=="disconnected" Set "State=Отключено"
If "%State%"=="ad hoc network formed" Set "State=Создана сеть компьютер-компьютер"
If "%RadioStatus%"=="Hardware On" Set "RadioStatus=Оборудование вкл."
If "%RadioStatus2%"=="Software On" Set "RadioStatus2=Программное обеспечение вкл."
If "%NetworkType%"=="Infrastructure" Set "NetworkType=Инфраструктура"
If "%NetworkType%"=="Adhoc" Set "NetworkType=Прямое соединение"
If "%ConnectionMode%"=="Auto Connect" Set "ConnectionMode=Автоматическое подключение"
If "%ConnectionMode%"=="Profile" Set "ConnectionMode=Профиль"
If "%HostedNetworkStatus%"=="Not available" Set "HostedNetworkStatus=Недоступно"
If "%HostedNetworkStatus%"=="Not started" Set "HostedNetworkStatus=Не запущено"
If "%HostedNetworkStatus%"=="Started" Set "HostedNetworkStatus=Запущено"
        REM Вывод возможной информации в окне консоли
Echo.
Echo Проверка                  : %Count%
Echo Дата                      : %Date%
Echo Время                      : %Time%
Echo.
Echo %Interface%
Echo.
Echo Имя                        : %Name%
Echo Описание                  : %Description%
Echo Идентификатор GUID        : %GUID%
Echo Физический адрес          : %PhysicalAddress%
Echo Состояние                  : %State%
Echo Cостояние радио            : %RadioStatus%
Echo.                            %RadioStatus2%
Echo SSID                      : %SSID%
Echo BSSID                      : %BSSID%
Echo Тип сети                  : %NetworkType%
Echo Тип радио                  : %RadioType%
Echo Проверка подлинности      : %Authentication%
Echo Шифр                      : %Cipher%
Echo Режим подключения          : %ConnectionMode%
Echo Канал                      : %Channel%
Echo Скорость приема (Мбит/с)  : %ReceiveRate%
Echo Скорость передачи (Мбит/с) : %TransmitRate%
Echo Сигнал                    : %Signal%
Echo Профиль                    : %Profile%
Echo.
Echo Состояние размещенной сети : %HostedNetworkStatus%
If Exist %DataBase% (
REM Вывод с использованием базы данных:
Echo Клиенты в размещенной сети : %Client1%
Echo.                            %Client2%
Echo.                            %Client3%
Echo.                            %Client4%
Echo.                            %Client5%
Echo.                            %Client6%
Echo.                            %Client7%
Echo.                            %Client8%
Echo.                            %Client9%
Echo.                            %Client10%
) Else (
REM Или стандартный вывод ^(если не нужно использование базы данных^):
Echo Клиенты в размещенной сети : %HostedNetworkClient1%
Echo.                            %HostedNetworkClient2%
Echo.                            %HostedNetworkClient3%
Echo.                            %HostedNetworkClient4%
Echo.                            %HostedNetworkClient5%
Echo.                            %HostedNetworkClient6%
Echo.                            %HostedNetworkClient7%
Echo.                            %HostedNetworkClient8%
Echo.                            %HostedNetworkClient9%
Echo.                            %HostedNetworkClient10%)
Echo.
Echo.%ClientsLimitReached%
Echo.
Echo Нажмите любую клавишу, чтобы обновить информацию о подключенной WLAN.
Pause >Nul
Set /a Count+=1
        REM Обнуление всех выше указанных переменных до метки [:Check]
EndLocal & Set Count=%Count%
Goto Check

:M1
        REM Блокировка приёма данных от второго и более интерфейсов (следующие две строки)
%E%
If %A1%==Name If DefIned Name Set "E=Exit /b"& Exit /b
        REM Создание переменных [%Interface%]
If Not DefIned Interface (If "%D4:~-1%"==" " (
                Set "Interface=%A1% %B2% %C3% %D4:~0,-1%"& Exit /b
                ) Else Set "Interface=%A1% %B2% %C3% %D4%"& Exit /b)
        REM Создание переменных [%с одним словом или символом, кроме двоеточия%]
If "%B2%"==":" If Not DefIned %A1% (
        If "%D4%"=="" Set "%A1%=%C3%"& Exit /b
        If Not "%D4%"=="" Set "%A1%=%C3% %D4%"& Exit /b)
        REM Создание переменных [%с двумя словами или символами, кроме двоеточия%]
If Not DefIned %A1%%B2% (
        If "%C3%"==":" Set "%A1%%B2%=%D4%"& Exit /b
        REM Создание переменных [%ReceiveRate%] и [%TransmitRate%]
        If "%B2%"=="rate" Set "%A1%%B2%=%D4:~2%"& Exit /b)
        REM Создание переменной [%RadioStatus2%]
If DefIned RadioStatus If Not DefIned RadioStatus2 Set "RadioStatus2=%A1% %B2%"& Exit /b
        REM Создание переменных [%с тремя словами или символами, кроме двоеточия%]
If Not DefIned %A1%%B2%%C3% Set "%A1%%B2%%C3%=%D4:~2%"
        REM Продолжение работы для создания переменных [%HostedNetworkClients(1-10)%], [%Client(1-10)%] и [%ClientsLimitReached%]
If Not DefIned HostedNetworkClients Exit /b
        REM Выдача чисел от 9 до 1 для создания переменных [%HostedNetworkClients(1-10)%], [%Client(1-10)%] и [%ClientsLimitReached%]
For /l %%a In (10,-1,1) Do Call :M2 %%a& If DefIned HostedNetworkClient%%a Exit /b

:M2
Set /a min=%1-1
        REM Создание переменных [%HostedNetworkClients10%], [%Client10%] и [%ClientsLimitReached%]
If %min% EQU 9 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 (
        set "ClientsLimitReached=Достигнут предел отображения клиентов в размещенной сети ^(не более 10^)"
        Set HostedNetworkClient%1=%A1%
        For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a (
                Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клиент [%A1%] не найден в базе данных"
        Exit /b)
        REM Создание переменных [%HostedNetworkClients(2-9)%] и [%Client(2-9)%]
If %min% LSS 9 If %min% GTR 0 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 (
        Set HostedNetworkClient%1=%A1%
        For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a (
                Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клиент [%A1%] не найден в базе данных"
        Exit /b)
        REM Создание переменных [%HostedNetworkClients1%] и [%Client1%]
If %min% EQU 0 If DefIned HostedNetworkClients If Not DefIned HostedNetworkClient%1 (
        Set HostedNetworkClient%1=%HostedNetworkClients%
        For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %HostedNetworkClients%==%%a (
                Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клиент [%HostedNetworkClients%] не найден в базе данных"
        Exit /b
        )
Exit /b

:M3
        REM Добавление правильного окончания к слову [интерфейс] в зависимости от количества
If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%N:~0,-26%"
If %N% LEQ 9 (
        If %N% EQU 0 Set Ending=ов& Exit /b
        If %N% EQU 1 Set Ending=& Exit /b
        If %N% GEQ 2 If %N% LEQ 4 Set Ending=а& Exit /b
        If %N% GEQ 5 If %N% LEQ 9 Set Ending=ов& Exit /b)
If %N% GTR 9 (
        If %N:~-2,1% EQU 1 Set Ending=ов& Exit /b
        If %N:~-2,1% GEQ 2 (
                If %N:~-1% EQU 0 Set Ending=ов& Exit /b
                If %N:~-1% EQU 1 Set Ending=& Exit /b
                If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=а& Exit /b
                If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ов& Exit /b)
        If %N:~-2,1% EQU 0 (
                If %N:~-1% EQU 0 Set Ending=ов& Exit /b
                If %N:~-1% EQU 1 Set Ending=& Exit /b
                If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=а& Exit /b
                If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ов& Exit /b)
        )


Українська версія (випрвлена 24.11.2020)
Код:

@Echo Off
REM WLAN (Wireless Local Area Network) — бездротова локальна мережа.
REM Wi-Fi (Wireless Fidelity) — це назва торгового бренду, яка використовується для позначення пристроїв, що підключаються до бездротової мережі.
REM Найчастіше термін WiFi розглядається як синонім WLAN.
Chcp 65001 >Nul
Mode Con: Cols=83 LInes=43
Title Виведення інформації про підключену WLAN (українська версія).
Set "DataBase=DataBase.txt"
REM Set "DataBase=DataBaseUkr.txt"
Set Count=1

:Check
SetLocal EnableExtensions

For /f "Tokens=1-3*" %%a In ('Netsh Wlan Show Interfaces') Do Set "A1=%%a"& Set "B2=%%b"& Set "C3=%%c"& Set "D4=%%d"& Call :M1

If "%Interface%"=="There is no wireless interface on the system." Set "Interface=Бездротовий інтерфейс в системі відсутній."
If "%Interface%"=="The Wireless AutoConfig Service (wlansvc) is not running." Set "Interface=Служба автоналаштування бездротової мережі (wlansvc) не запущена."
If "%Interface%"=="There is 1 interface on the system:" Set "Interface=В системі 1 інтерфейс:"
If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%Interface:~10%"& Call :M3
If "%Interface%"=="There are %N% interfaces on the system:" Set "Interface=В системі %N% інтерфейс%Ending%:"
If "%State%"=="connected" Set "State=Підключено"
If "%State%"=="disconnected" Set "State=Відключено"
If "%State%"=="ad hoc network formed" Set "State=Створена мережа комп'ютер-комп'ютер"
If "%RadioStatus%"=="Hardware On" Set "RadioStatus=Обладнання вкл."
If "%RadioStatus2%"=="Software On" Set "RadioStatus2=Програмне забезпечення вкл."
If "%NetworkType%"=="Infrastructure" Set "NetworkType=Інфраструктура"
If "%NetworkType%"=="Adhoc" Set "NetworkType=Пряме з'єднання"
If "%ConnectionMode%"=="Auto Connect" Set "ConnectionMode=Автоматичне підключення"
If "%ConnectionMode%"=="Profile" Set "ConnectionMode=Профіль"
If "%HostedNetworkStatus%"=="Not available" Set "HostedNetworkStatus=Недоступно"
If "%HostedNetworkStatus%"=="Not started" Set "HostedNetworkStatus=Не запущено"
If "%HostedNetworkStatus%"=="Started" Set "HostedNetworkStatus=Запущено"

Echo.
Echo Перевірка                  : %Count%
Echo Дата                        : %Date%
Echo Час                        : %Time%
Echo.
Echo %Interface%
Echo.
Echo Ім'я                        : %Name%
Echo Опис                        : %Description%
Echo Ідентифікатор GUID          : %GUID%
Echo Фізична адреса              : %PhysicalAddress%
Echo Стан                        : %State%
Echo Стан радіо                  : %RadioStatus%
Echo.                              %RadioStatus2%
Echo SSID                        : %SSID%
Echo BSSID                      : %BSSID%
Echo Тип мережі                  : %NetworkType%
Echo Тип радіо                  : %RadioType%
Echo Перевірка автентичності    : %Authentication%
Echo Шифр                        : %Cipher%
Echo Режим підключення          : %ConnectionMode%
Echo Канал                      : %Channel%
Echo Швидкість прийому (Мбіт/с)  : %ReceiveRate%
Echo Швидкість передачі (Мбіт/с) : %TransmitRate%
Echo Сигнал                      : %Signal%
Echo Профіль                    : %Profile%
Echo.
Echo Стан розміщеної мережі      : %HostedNetworkStatus%
If Exist %DataBase% (
REM Виведення з використанням бази даних:
Echo Клієнти в розміщеній мережі : %Client1%
Echo.                              %Client2%
Echo.                              %Client3%
Echo.                              %Client4%
Echo.                              %Client5%
Echo.                              %Client6%
Echo.                              %Client7%
Echo.                              %Client8%
Echo.                              %Client9%
Echo.                              %Client10%
) Else (
REM Або стандартне виведення ^(якщо не потрібно використання бази даних^):
Echo Клієнти в розміщеній мережі : %HostedNetworkClient1%
Echo.                              %HostedNetworkClient2%
Echo.                              %HostedNetworkClient3%
Echo.                              %HostedNetworkClient4%
Echo.                              %HostedNetworkClient5%
Echo.                              %HostedNetworkClient6%
Echo.                              %HostedNetworkClient7%
Echo.                              %HostedNetworkClient8%
Echo.                              %HostedNetworkClient9%
Echo.                              %HostedNetworkClient10%)
Echo.
Echo.%ClientsLimitReached%
Echo.
Echo Натисніть будь-яку клавішу, щоб оновити інформацію про підключену WLAN.
Pause >Nul
Set /a Count+=1
EndLocal & Set Count=%Count%
Goto Check

:M1
%E%
If %A1%==Name If DefIned Name Set "E=Exit /b"& Exit /b
If Not DefIned Interface (If "%D4:~-1%"==" " (
                Set "Interface=%A1% %B2% %C3% %D4:~0,-1%"& Exit /b
                ) Else Set "Interface=%A1% %B2% %C3% %D4%"& Exit /b)
If "%B2%"==":" If Not DefIned %A1% (
        If "%D4%"=="" Set "%A1%=%C3%"& Exit /b
        If Not "%D4%"=="" Set "%A1%=%C3% %D4%"& Exit /b)
If Not DefIned %A1%%B2% (
        If "%C3%"==":" Set "%A1%%B2%=%D4%"& Exit /b
        If "%B2%"=="rate" Set "%A1%%B2%=%D4:~2%"& Exit /b)
If DefIned RadioStatus If Not DefIned RadioStatus2 Set "RadioStatus2=%A1% %B2%"& Exit /b
If Not DefIned %A1%%B2%%C3% Set "%A1%%B2%%C3%=%D4:~2%"
If Not DefIned HostedNetworkClients Exit /b
For /l %%a In (10,-1,1) Do Call :M2 %%a& If DefIned HostedNetworkClient%%a Exit /b

:M2
Set /a min=%1-1
If %min% EQU 9 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 (
        set "ClientsLimitReached=Досягнута межа відображення клієнтів у розміщеній мережі ^(не більше 10^)"
        Set HostedNetworkClient%1=%A1%
        For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a (
                Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клієнт [%A1%] не знайдений в базі даних"
        Exit /b)
If %min% LSS 9 If %min% GTR 0 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 (
        Set HostedNetworkClient%1=%A1%
        For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a (
                Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клієнт [%A1%] не знайдений в базі даних"
        Exit /b)
If %min% EQU 0 If DefIned HostedNetworkClients If Not DefIned HostedNetworkClient%1 (
        Set HostedNetworkClient%1=%HostedNetworkClients%
        For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %HostedNetworkClients%==%%a (
                Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клієнт [%HostedNetworkClients%] не знайдений в базі даних"
        Exit /b
        )
Exit /b

:M3
If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%N:~0,-26%"
If %N% LEQ 9 (
        If %N% EQU 0 Set Ending=ів& Exit /b
        If %N% EQU 1 Set Ending=& Exit /b
        If %N% GEQ 2 If %N% LEQ 4 Set Ending=и& Exit /b
        If %N% GEQ 5 If %N% LEQ 9 Set Ending=ів& Exit /b)
If %N% GTR 9 (
        If %N:~-2,1% EQU 1 Set Ending=ів& Exit /b
        If %N:~-2,1% GEQ 2 (
                If %N:~-1% EQU 0 Set Ending=ів& Exit /b
                If %N:~-1% EQU 1 Set Ending=& Exit /b
                If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=и& Exit /b
                If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ів& Exit /b)
        If %N:~-2,1% EQU 0 (
                If %N:~-1% EQU 0 Set Ending=ів& Exit /b
                If %N:~-1% EQU 1 Set Ending=& Exit /b
                If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=и& Exit /b
                If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ів& Exit /b)
        )


Вдобавок выкладу созданные исполняемые файлы скомпилированные программой "Bat To Exe Converter v3.2.0.0" с использованием только этих кодов и иконки, с названием в шапке справа "WLAN Info En-Ru-Ua 1.0.rar"
MD5 хеш-сумма f5a4787be51a858a1b876495e0966f3c

Iska 08-11-2020 08:16 2939097

wareznik3dll, код оформляется не bold'ом, а тегом [code].

Ответ: никак.

Другое дело, что сам код кривой. Нет никакой необходимости вызывать «Netsh Wlan Show Interfaces» по четыре раза на каждый чих:
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

title Проверка состояния Wi-Fi и уровня его сигнала.

:Repeat

netsh.exe wlan show interfaces | findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:"SSID" /c:"Сигнал:"

echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
>nul pause

goto :Repeat

endlocal
exit /b 0


wareznik3dll 11-11-2020 13:56 2939526

Iska, Большое спасибо за подсказки по оформлению (уже исправил) и использованию команды "FindStr".
Извините, но мой код кривой по Вашему мнению лишь потому что четыре раза вызывает "Netsh Wlan Show Interfaces" я не считаю что в этом заключается какая то кривизна а вот Ваш код при использовании кодовой страницы 1251 (Windows-1251) выдает:

SSID : Бла-бла
BSSID : Там-тара-рам
Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.


А где же значения? :

Количество проверок : 1
Имя : Беспроводное сетевое соединение
Состояние : Подключено
Сигнал : 78%

И зачем мне значение:
BSSID : Там-тара-рам

wareznik3dll 11-11-2020 14:26 2939528

Iska, походу команда "FindStr" понимает только "OEM 866" из кириллицы, потому как мне нужно было использование именно кодовой страницы "Windows-1251" мною и было принято использование именно указанного кода с использованием команды "Find".

Iska, по поводу вызова четыре раза "Netsh Wlan Show Interfaces" объясню кратко, нужно лишь для получения значений для каждой переменной которые в свою очередь нужны для более правильного и красивого (не разбросанного) отображения нужной информации и в нужном на мой взгляд порядке размещения.

В итоге:
Ничего кривого в своём коде не обнаружил.

wareznik3dll 11-11-2020 15:22 2939542

Код для проверки состояния Wi-Fi и уровня его сигнала с отображением даты и времени проверки:

Код:

@Echo Off
SetLocal EnableExtensions & REM Использование дополнительных ключей.
Chcp 1251 >Nul
Title Проверка состояния Wi-Fi и уровня его сигнала.
Mode Con: Cols=78 Lines=11
Set Count=1
:Check
For %%n In ("Имя" "Состояние:" " SSID" "Сигнал") Do (
        For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces ^| Find /i %%n') Do (
                If %%n=="Имя" (
                        Set "Name=%%b"
                        )
                If %%n=="Состояние:" (
                        Set "State=%%b"
                        )
                If %%n==" SSID" (
                        Set "SSID=%%b"
                        )
                If %%n=="Сигнал" (
                        Set "Signal=%%b"
                        )
                )
        )
Echo Проверка  : %Count%
Echo Дата      : %Date%
Echo Время    : %Time%
Echo.
Echo Имя      : %Name%
Echo SSID      : %SSID%
Echo Состояние : %State%
Echo Сигнал    : %Signal%
Echo.
Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
Set /a Count+=1
  Pause >Nul
Goto Check


wareznik3dll 11-11-2020 15:41 2939546

Приму и отвечу на любые замечания.
Заранее благодарен всем неравнодушным.

Iska 11-11-2020 22:56 2939602

Цитата:

Цитата wareznik3dll
а вот Ваш код при использовании кодовой страницы 1251 (Windows-1251) выдает: »

Это Ваши проблемы, коллега, что Вы решили использовать не предназначенную кодовую страницу для сохранения пакетного файла.

Цитата:

Цитата wareznik3dll
И зачем мне значение:
BSSID : Там-тара-рам »

Добавьте выделенное:
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

title Проверка состояния Wi-Fi и уровня его сигнала.

:Repeat

netsh.exe wlan show interfaces | findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:"SSID" /c:"Сигнал:" | find.exe /i /v "BSSID"

echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
>nul pause

goto :Repeat

endlocal
exit /b 0


wareznik3dll 12-11-2020 10:23 2939649

Цитата:

Цитата Iska
Это Ваши проблемы, коллега, что Вы решили использовать не предназначенную кодовую страницу для сохранения пакетного файла. >

Во первых спасибо Вам за критику а вот по поводу что я использую непредназначенную кодовую страницу это как то не вяжется бывает нужно использовать и кодовую таблицу 65001 (UTF-8) а также и любые другие, не мне Вам объяснять я вижу Вы очень смышленый человек и очень многое понимаете (сказано не в насмешку).
Цитата:

Цитата Iska
netsh.exe wlan show interfaces | findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:"SSID" /c:"Сигнал:" | find.exe /i /v "BSSID" >

В этом месте я бы сократил Ваш код для быстроты (зачем лишнее) на:
Код:

netsh.exe wlan show interfaces | findstr.exe /i /r /c:"Имя" /c:"Состояние:" /c:" SSID" /c:"Сигнал"
Вместо "Имя:" достаточно "Имя"
"Состояние:" так и нужно оставить потому как есть строка "Состояние размещенной сети: ..." дабы не выдало нам ети две строки вместо одной, так само, как и в случае с "BSSID : ..." и "SSID : ..."
Вместо "SSID" нужно вначале просто добавить пробел " SSID" дабы не было сходства с "BSSID"
Вместо "Сигнал:" достаточно "Сигнал"

Вдобавок отображение инфы в Вашем коде согласитесь выглядит ну очень уж разбросанным
Как рас таки для этого в моём коде в цикле и используется 4 раза обращение к "Netsh Wlan Show Interfaces".

Busla 12-11-2020 11:56 2939661

Цитата:

Цитата wareznik3dll
Вместо "Сигнал:" достаточно "Сигнал" »

Что же вы остановились на пол-пути: можно ведь и Сигн написать ;-)

Iska 12-11-2020 14:52 2939685

Цитата:

Цитата wareznik3dll
Iska, по поводу вызова четыре раза "Netsh Wlan Show Interfaces" объясню кратко, нужно лишь для получения значений для каждой переменной которые в свою очередь нужны для более правильного и красивого (не разбросанного) отображения нужной информации и в нужном на мой взгляд порядке размещения. »

Тогда Вам нужно научиться делать сие правильно.

Цитата:

Цитата wareznik3dll
а вот по поводу что я использую непредназначенную кодовую страницу это как то не вяжется бывает нужно использовать и кодовую таблицу 65001 (UTF-8) а также и любые другие, »

В данном случае нет ни малейшей необходимости использовать какую-либо иную кодовую страницу вместо OEM/866. Вы её, кстати, даже не возвращаете после отработки Вашего пакетного файла.

Цитата:

Цитата wareznik3dll
В этом месте я бы сократил Ваш код для быстроты (зачем лишнее) на: »

Потому что, это не лишнее.

Цитата:

Цитата wareznik3dll
Как рас таки для этого в моём коде в цикле и используется 4 раза обращение к "Netsh Wlan Show Interfaces". »

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

@Echo Off
SetLocal EnableExtensions & REM Использование дополнительных ключей.

rem Title Проверка состояния Wi-Fi и уровня его сигнала.
rem Mode Con: Cols=78 Lines=11
Set Count=1

:Check
        For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces ^| findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:"SSID" /c:"Сигнал:" ^| find.exe /i /v "BSSID"') Do (
                If "%%a" equ "Имя"      Set "Name=%%b"
                If "%%a" equ "Состояние" Set "State=%%b"
                If "%%a" equ "SSID"      Set "SSID=%%b"
                If "%%a" equ "Сигнал"    Set "Signal=%%b"
        )

        Echo Проверка  : %Count%
        Echo Дата      : %Date%
        Echo Время    : %Time%
        Echo.
        Echo Имя      : %Name%
        Echo SSID      : %SSID%
        Echo Состояние : %State%
        Echo Сигнал    : %Signal%
        Echo.
        Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
        Set /a Count+=1
        Pause >Nul
        Goto :Check


Не нужно четырёх вызовов одной и той же команды с риском получения несогласованных данных. Совсем не нужно.

Впрочем, дело Ваше.

wareznik3dll 12-11-2020 15:12 2939693

Цитата:

Цитата Busla
Что же вы остановились на пол-пути: можно ведь и Сигн написать ;-) »

Ну если уж на то пошло то можно и так ;-)
Код:

netsh.exe wlan show interfaces | findstr.exe /r /c:" Им" /c:"яние:" /c:" S" /c:"Си"
Но " S" лучше оставвить " SSID:" для избежания совпадений со строкой "Профиль : ..."
Ну вот как то так.

Iska 12-11-2020 15:15 2939694

Цитата:

Цитата wareznik3dll
Ну если уж на то пошло то можно и так ;-) »

Код:

netsh.exe wl sh in
У кого толще Кто меньше? :lol:

alpap 12-11-2020 15:43 2939699

чтобы не подумали что тоже могу только насмехаться:
Код:

@echo off
for /f "skip=1 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces^|find ":"') do call :# "%%a" "%%b"
pause& exit

:#
 for /f "tokens=*" %%a in ("%~1") do for /f "tokens=*" %%b in ("%~2") do echo %%a|>nul findstr /ir /c:"SSID" /c:"BSSID" /c:"Профиль" && (
  for /f %%i in ("%%a") do set "s=%%i: %%b"
  ) || (
  set "s=%%a: %%b"
  )
 >>file.txt echo %s%
exit /b

или если только на экран и то что было запрошено (но в читабельном виде или для удобства взятия в переменную):
Код:

@echo off
for /f "skip=1 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces^|find ":"') do call :# "%%a" "%%b"
pause& exit

:#
 for /f "tokens=*" %%a in ("%~1") do for /f "tokens=*" %%b in ("%~2") do echo %%a|>nul findstr /ir /c:"SSID" /c:"BSSID" /c:"Профиль" && (
  for /f %%i in ("%%a") do set "s=%%i: %%b"
  ) || (
  set "s=%%a: %%b"
  )
 echo %s%|findstr /ir /c:"Имя" /c:"Состояние:" /c:"SSID" /c:"Сигнал"
exit /b


wareznik3dll 12-11-2020 16:07 2939704

Цитата:

Цитата Iska
Вы продолжаете с завидным упорством использовать кривой алгоритм. Вот, смотрите, я беру приведённый Вами код, и делаю алгоритм прямым: »

ОЧЕНЬ БОЛЬШОЕ СПАСИБО И ОТ ВСЕГО СЕРДЦА - эти Ваши слова натолкнули меня на упрощение своего кода до этого:
Код:

@Echo Off
SetLocal EnableExtensions & REM Использование дополнительных ключей.
Chcp 1251 >Nul
Title Проверка состояния Wi-Fi и уровня его сигнала.
Mode Con: Cols=78 Lines=11
Set Count=1
:Check
For /f "Tokens=1,2,* Delims=: " %%a In ('Netsh Wlan Show Interfaces') Do (
        If %%a==Имя Set "Name=%%b %%c"
        If %%a==Состояние If Not %%b==размещенной Set "State=%%b %%c"
        If %%a==SSID Set "SSID=%%b %%c"
        If %%a==Сигнал Set "Signal=%%b %%c"
        )
Echo Проверка  : %Count%
Echo Дата      : %Date%
Echo Время    : %Time%
Echo.
Echo Имя      : %Name%
Echo SSID      : %SSID%
Echo Состояние : %State%
Echo Сигнал    : %Signal%
Echo.
Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
Set /a Count+=1
  Pause >Nul
Goto Check

Как видете он ещё короче плюс вообще не использует ни более лёгкую "Find" ни потяжелее "FindStr"

Ещё раз благодарочка.
Как по мне такие дискусии должны приводить к совершенствованию кода.

alpap 12-11-2020 16:31 2939707

нужна красота?
(код в кодировке OEM 866)
Код:

@echo off
for /f "skip=1 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces^|find ":"') do call :# "%%a" "%%b"

Echo Дата      : %Date%
Echo Время    : %Time%
Echo.
Echo Имя      : %Имя%
Echo SSID      : %SSID%
Echo Состояние : %Состояние%
Echo Сигнал    : %Сигнал%
pause& exit

:#
 for /f "tokens=*" %%a in ("%~1") do for /f "tokens=*" %%b in ("%~2") do echo %%a|>nul findstr /ir /c:"SSID" /c:"BSSID" /c:"Профиль" && (
  for /f %%i in ("%%a") do set "%%i=%%b"
  ) || (
  set "%%a=%%b"
  )
exit /b


alpap 12-11-2020 16:49 2939709

это не быстрее, но удобнее тем что очень легко добавить еще одну строку, без каких-то подобных извращений
Цитата:

Цитата wareznik3dll
If %%a==Состояние If Not %%b==размещенной Set "State=%%b %%c" »

например добавим BSSID:
Код:

@echo off
Title Проверка состояния Wi-Fi и уровня его сигнала.
Mode Con: Cols=78 Lines=11

Set Count=1
:Check
for /f "skip=1 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces^|find ":"') do call :# "%%a" "%%b"

Echo Проверка  : %Count%
Echo Дата      : %Date%
Echo Время    : %Time%
Echo.
Echo Имя      : %Имя%
Echo SSID      : %SSID%
Echo BSSID    : %BSSID%
Echo Состояние : %Состояние%
Echo Сигнал    : %Сигнал%
Echo.
Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.

Set /a Count+=1
pause>nul
Goto Check

:#
 for /f "tokens=*" %%a in ("%~1") do for /f "tokens=*" %%b in ("%~2") do echo %%a|>nul findstr /ir /c:"SSID" /c:"BSSID" /c:"Профиль" && (
  for /f %%i in ("%%a") do set "%%i=%%b"
  ) || (
  set "%%a=%%b"
  )
exit /b


wareznik3dll 12-11-2020 17:01 2939711

По поводу использования кодовой страницы 1251 (Windows-1251)
Ответ: Хочу использовать для батника на украинском языке.

Но вообще то нужен батник на 65001" (UTF-8) для его упаковки программой "Bat To Exe Converter v3.2.0.0" к сожалению для этого подходит только она одна из возможных для выбора.
Хотя помнится в более старых версиях можно было выбратькак 1251 (Windows-1251) так и 866 (OEM 866).

alpap 12-11-2020 17:12 2939714

Цитата:

Цитата wareznik3dll
для батника на украинском языке »

Windows-1251 - мимо, только utf-8

wareznik3dll 12-11-2020 17:19 2939717

Цитата:

Цитата alpap
это не быстрее, но удобнее тем что очень легко добавить еще одну строку, без каких-то подобных извращений »

Пожалуйста уточните в каком Вашем коде не быстрее или в моём коде не быстрее?

И еще на мой взгляд у Ваших кодах более трёх цыклов "For" плюс ещё и "Call" в моём последнем коде всего один цикл "For" плюс ещё и без "Call". Я думаю Вы не упростили а усложнили.

Так как я не пробовал Ваш код, не могу Вас прямо в чём то осуждать. Если можно на словах объясните в чём изюминка Вашего кода в сравнении с моим. Заранее благодарен.

Цитата:

Цитата alpap
Windows-1251 - мимо, только utf-8 »

Об этом пожалуйста, если можно поточнее если можно в словах.

alpap 12-11-2020 17:25 2939721

Цитата:

Цитата wareznik3dll
в чём изюминка Вашего кода в сравнении с моим »

в этом хотя бы
Цитата:

Цитата alpap
легко добавить еще одну строку, без каких-то подобных извращений »

Цитата:

Цитата wareznik3dll
не упростили а усложнили »

я и не собирался упрощать и даже говорил
Цитата:

Цитата alpap
это не быстрее, »

я хотел сделать удобнее и практичнее для использования и редактирования
------
а что, нужна для этого случая прям фантастическая скорость? А вот вывод нужного по требованию из моего кода можно и через параметры сделать, из Вашего даже не представляю.

Цитата:

Цитата wareznik3dll
если можно поточнее »

если просто составление bat, то 1251 пойдет, если винда на укр или скажем считать надо укр и вывести, то получалось только в utf-8

wareznik3dll 12-11-2020 18:36 2939737

Цитата:

Цитата alpap
легко добавить еще одну строку, без каких-то подобных извращений »

Извините пожалуста, если можна строку из моего кода с извращением а если поточнее часть строки если извращение не во всей строке.
Цитата:

Цитата alpap
а что, нужна для этого случая прям фантастическая скорость? »

Скорость не важна
Важно: только четыре строчки "Имя, SSID, Состояние, Сигнал, Наглядный (не разбросанный) обзор выводимой инфы ну и наипростейший код",
менее важно: "Количество проверок, Дата и Время конечной проверки и Только нужный размер окна консоли",
и наименее важно: "Заголовок окна консоли".

Цитата:

Цитата alpap
если просто составление bat, то 1251 пойдет, если винда на укр или скажем считать надо укр и вывести, то получалось только в utf-8 »

ПОЖАЛУЙСТА, ЕСЛИ МОЖНО КОД НА UTF-8 а то у меня в упор не получается.
Заранее благодарен.

wareznik3dll 12-11-2020 19:07 2939746

Цитата:

Цитата alpap
Mode Con: Cols=78 Lines=11 »

Да вполне согласен только нужно изменить на:
Код:

Mode Con: Cols=78 Lines=12
Далее не углублялся но думаю где то можно что то и упростить.

Если долго мучится что то и получится.

wareznik3dll 12-11-2020 19:47 2939753

Ура все требования соблюдены!!!

Код:

@Echo Off
SetLocal EnableExtensions & REM Использование дополнительных ключей.
Chcp 65001 >Nul
Title Проверка состояния Wi-Fi и уровня его сигнала.
Mode Con: Cols=78 Lines=11
Set Count=1
:Check
For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces') Do Set "%%a=%%b"
Echo Проверка  : %Count%
Echo Дата      : %Date%
Echo Время    : %Time%
Echo.
Echo Имя      : %Name%
Echo SSID      : %SSID%
If %State%==connected Echo Состояние : подключено
If %State%==disconnected Echo Состояние : отключено
Echo Сигнал    : %Signal%
Echo.
Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
Set /a Count+=1
Pause >Nul
Goto Check

ОГРОМНОЕ БЛАГОДАРЮ ВСЕМ ВАМ РЕБЯТКИ
Без Вас я бы такого не добился.


Если кто упростит соблюдая все требования тот будет ещё лучшым.

wareznik3dll 12-11-2020 21:32 2939764

Ребята как Вы думаете результат добит или ешё что можно упростить или как то усовершенствовать? :help: :up2:

alpap 12-11-2020 23:15 2939778

Цитата:

Цитата wareznik3dll
если можна строку из моего кода с извращением »

я уже приводил выше и там есть такая не одна, если не увидели это уже к окулисту
Цитата:

Цитата wareznik3dll
соблюдая все требования »

требования могут поменяться
Цитата:

Цитата wareznik3dll
или как то усовершенствовать »

смысл совершенствовать кривой код, добавьте вывод например:
Код:

Echo Физ. адрес: %Physical address%
а ведь если будет такой запрос (там еще много: Network type, Radio type, ...)

wareznik3dll 12-11-2020 23:40 2939782

Цитата:

Цитата alpap
я уже приводил выше и там есть такая не одна, если не увидели это уже к окулисту »

Вопрос в окончательных двух кодах на русском и украинском кодах где Вы видете изьян?

требования могут поменяться
Нет

В шапке указал требования:
Важно: только четыре строчки "Имя, SSID, Состояние, Сигнал, Наглядный (не разбросанный) обзор выводимой инфы ну и наипростейший код".
Менее важно: "Количество проверок, Дата и Время конечной проверки и Только нужный размер окна консоли".
Наименее важно: "Заголовок окна консоли".
Ну и если получится (очень важно) рабочий код написанный с использованием кодовой таблицы 65001 (UTF-8) то-есть код должен быть сохранен именно в этой кодировке.

wareznik3dll 13-11-2020 00:01 2939784

смысл совершенствовать кривой код, добавьте вывод например:
Код:

Echo Физ. адрес: %Physical address%
Извените я терпел Ваши слова кривой код тут и там, даже каждый раз пытался исправлять и думаю исправил.
Вы на томесть ни разу не исправляли мои весомые указания на Ваши косяки которые действительно косяки например зачем:
Код:

('Netsh Wlan Show Interfaces ^| findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:"SSID" /c:"Сигнал:" ^| find.exe /i /v "BSSID"')
если можно просто:
Код:

('Netsh Wlan Show Interfaces ^| findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:" SSID" /c:"Сигнал:"')
Я же прямо указал что есть лишнее и оно:
Код:

^| find.exe /i /v "BSSID"
В дальнейшем попрошу после Ваших слов: кривой код сражу же указать на этот кривой код а не просто Бла-бла
так как зделал выше и уже втретий раз.

wareznik3dll 13-11-2020 02:26 2939788

Цитата:

Цитата alpap
а ведь если будет такой запрос (там еще много: Network type, Radio type, ...) »

Ну в таком случае держите код с полным фаршем, все что Вам не нужно Вы как умный человек отрежьте:
Скрытый текст
Код:

@Echo Off
SetLocal EnableExtensions & REM Использование дополнительных ключей.
Chcp 65001 >Nul
Title Check Wi-Fi status and signal strength.
Set Count=1
  REM Не используйте (удалите) эту и три нижние строки если Вам уже не нужно сравнивать сходство.
Mode Con: Cols=68 Lines=53
Netsh Wlan Show Interfaces
Echo  -------- В верху оригинал --------- С низу результат кода --------
:Check
For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces') Do (
        For /f "Tokens=1,* Delims=:" %%c In ("%%b") Do (
                If Not "%%d"=="" (Set "%%a=%%d") Else (Set "%%a= %%b")
                If "%%a"=="BSSID" Set "BSSID= %%b"
                If "%%a"=="There" Set "There=%%a %%b"
                )
        )
  REM Раскомментируйте нижнюю строку если не надо сравнивать, либо же закомментируйте её если желаете сравнить сходство.
REM Mode Con: Cols=68 Lines=29
Echo.
Echo Check                : %Count%
Echo Date                  : %Date%
Echo Time                  : %Time%
Echo.
Echo    %There%
Echo.
Echo Name                  :%Name%
Echo Description          :%Description%
Echo GUID                  :%GUID%
Echo Physical address      :%Physical%
Echo State                :%State%
Echo SSID                  :%SSID%
Echo BSSID                :%BSSID%
Echo Network type          :%Network%
Echo Radio type            :%Radio%
Echo Authentication        :%Authentication%
Echo Cipher                :%Cipher%
Echo Connection mode      :%Connection%
Echo Channel              :%Channel%
Echo Receive rate (Mbps)  :%Receive%
Echo Transmit rate (Mbps)  :%Transmit%
Echo Signal                :%Signal%
Echo Profile              :%Profile%
Echo.
Echo Hosted network status :%Hosted%
Echo.
Echo Press any key to update the status and signal strength information.
Set /a Count+=1
Pause >Nul
Goto Check



Ну а для случая попроще как в моём вполне подойдет и тот что уже есть

Name :%Name%
Description :%Description%
GUID :%GUID%
Physical address :%Physical%
State :%State%
SSID :%SSID%
BSSID :%BSSID%
Network type :%Network%
Radio type :%Radio%
Authentication :%Authentication%
Cipher :%Cipher%
Connection mode :%Connection%
Channel :%Channel%
Receive rate (Mbps) :%Receive%
Transmit rate (Mbps) :%Transmit%
Signal :%Signal%
Profile :%Profile%

Hosted network status :%Hosted%

ИМЕНА ПЕРЕМЕННЫХ ВЫДЕЛИЛ ЖИРНЫМ ИХ ЗНАЧЕНИЕ - ВСЁ ЧТО ПОСЛЕ ":"
Например, за "Physical address" он же "Физический адрес" отвечает переменная "%Physical%"

Главное забыл, при таком раскладе имена переменных короткие и самое главное НЕ ПОВТОРЯЮТСЯ.

wareznik3dll 13-11-2020 02:58 2939790

:cry: Теперь я уже надеюсь нашим дискусиям конец!?
Или все же есть "косяки" ...
И у кого же быстрее тоньше или короче :lol: :cry:

alpap 13-11-2020 14:04 2939829

ну вот Вы и пришли к моему коду, иначе там никак. Да, я ни разу не говорил что код претендует на медаль и все такое, косяки есть и там, но они именно из-за кривого вывода Netsh Wlan Show Interfaces
Скрытый текст

Код:

"В системе 1 интерфейс" " "
"    Имя" "                                xxxxxxxxxx"
"    Описание" "                      [CommView] Atheros AR9285 Wireless Network Adapter"
"    Идентификатор GUID" "  xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"    Физический адрес" "      xxxxxxxxxxxxxxxxx"
"    Состояние" "                    Подключено"
"    SSID                  " " xxxxxxxxx"
"    BSSID                  " " xxxxxxxxxxxxxxxxx"
"    Тип сети" "                          Инфраструктура"
"    Тип радио" "                        802.11g"
"    Проверка подлинности" "  WPA2-Personal"
"    Шифр" "                                CCMP"
"    Режим подключения" "      Автоматическое подключение"
"    Канал" "                              1"
"    Скорость приема (Мбит/с)" "    36"
"    Скорость передачи (Мбит/с)" " 36"
"    Сигнал" "                                    100% "
"    Профиль                " " xxxxxxxxx "
"    Состояние размещенной сети" " Недоступно"


Мне тоже очень не нравится наблюдать в коде строку:
Код:

echo %%a|>nul findstr /ir /c:"SSID" /c:"BSSID" /c:"Профиль"
и всего что с ней связано, но повторюсь, это все из-за кривого вывода, иначе вообще была бы одна строка кода и далее блок echo
по поводу - требования не поменяются
то нужен укр язык, то определенная кодировка, то нужный размер окна, все это навевает на мысли что код готовят для запуска в массы и вот там требования как раз таки и могут поменяться аж бегом и надо быть готовым к выводу любой строки из всего вывода команды. Или делать код так чтобы это было легко повторяемо пользователем или очевидно. А вырвать что-то из контекста и опираясь на вывод сделать это досягаемым максимально просто и удобно не выход, самому потом придется что-то доделать или изменить и надо будет сызнова разбираться с кодом и выводом чтобы понять почему не работает вроде бы очевидное.

wareznik3dll 13-11-2020 18:22 2939862

Подправленный код для вывода всей инфы без (Find и FindStr)
Код:

@Echo Off
Chcp 65001 >Nul
Set Count=1
  REM Не используйте (удалите) эту и три нижние строки если Вам уже не нужно сравнивать сходство.
Mode Con: Cols=68 Lines=53
Netsh Wlan Show Interfaces
Echo  -------- В верху оригинал --------- С низу результат кода --------
:Check
SetLocal EnableExtensions & REM Использование дополнительных ключей.
REM For /f "Tokens=1* Delims=:" %%a In ('Netsh Wlan Show Interfaces') Do (
        REM If "%%a"=="There is 1 interface on the system" Set Interface=%%a:
        REM For /f "Tokens=1*" %%c In ("%%a") Do Set %%c=%%b
        REM )
REM Set There=%Interface%
For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces') Do (
        For /f "Tokens=1,* Delims=:" %%c In ("%%b") Do (
                If Not "%%d"=="" (Set "%%a=%%d") Else (Set "%%a= %%b")
                If "%%a"=="BSSID" Set "BSSID= %%b"
                If "%%a"=="There" Set "There=%%a %%b"
                )
        )
:EngVersion
Title Check Wi-Fi status and signal strength.
  REM Раскомментируйте нижнюю строку если не надо сравнивать, либо же закомментируйте её если желаете сравнить сходство.
REM Mode Con: Cols=68 Lines=29
Echo.
Echo Check                : %Count%
Echo Date                  : %Date%
Echo Time                  : %Time%
Echo.
Echo    %There%]
Echo.
Echo Name                  :%Name%
Echo Description          :%Description%
Echo GUID                  :%GUID%
Echo Physical address      :%Physical%
Echo State                :%State%
Echo SSID                  :%SSID%
Echo BSSID                :%BSSID%
Echo Network type          :%Network%
Echo Radio type            :%Radio%
Echo Authentication        :%Authentication%
Echo Cipher                :%Cipher%
Echo Connection mode      :%Connection%
Echo Channel              :%Channel%
Echo Receive rate (Mbps)  :%Receive%
Echo Transmit rate (Mbps)  :%Transmit%
Echo Signal                :%Signal%]
Echo Profile              :%Profile%]
Echo.
Echo Hosted network status :%Hosted%]
Echo.
Echo Press any key to update the status and signal strength information.
Pause >Nul
:RusVersion
Title Проверка состояния Wi-Fi и уровня его сигнала.
Mode Con: Cols=78 Lines=29
Echo.
Echo Проверка                  : %Count%
Echo Дата                      : %Date%
Echo Время                      : %Time%
Echo.
REM There is no wireless interface on the system.
REM Беспроводной интерфейс в системе отсутствует.
If "%There%"=="There is 1 interface on the system: " (
        Echo    В системе 1 интерфейс:
        Echo.
        Echo Имя                        :%Name%
        Echo Описание                  :%Description%
        Echo Идентификатор GUID        :%GUID%
        Echo Физический адрес          :%Physical%
        REM Echo State: [%State%]
        If "%State%"==" ad hoc network formed" (
                Echo Состояние                  : Создана сеть компьютер-компьютер
                Echo SSID                      :%SSID%
                Echo BSSID                      :%BSSID%
                If "%Network%"==" Adhoc" (
                        Echo Тип сети                  : Прямое соединение
                        )
                Echo Тип радио                  :%Radio%
                Echo Проверка подлинности      :%Authentication%
                Echo Шифр                      :%Cipher%
                REM Echo Connection: [%Connection%]
                If "%Connection%"==" Auto Connect" (
                        Echo Режим подключения          : Автоматическое подключение
                        )
                If "%Connection%"==" Profile" (
                        Echo Режим подключения          : Профиль
                        )
                Echo Канал                      :%Channel%
                Echo Скорость приема ^(Мбит/с^)  :%Receive%
                Echo Скорость передачи ^(Мбит/с^) :%Transmit%
                Echo Сигнал                    :%Signal%]
                Echo Профиль                    :%Profile%]
                )
        If "%State%"==" connected" (
                Echo Состояние                  : Подключено
                Echo SSID                      :%SSID%
                Echo BSSID                      :%BSSID%
                REM Echo Network: [%Network%]
                If "%Network%"==" Infrastructure" (
                        Echo Тип сети                  : Инфраструктура
                        )
                Echo Тип радио                  :%Radio%
                Echo Проверка подлинности      :%Authentication%
                Echo Шифр                      :%Cipher%
                REM Echo Connection: [%Connection%]
                If "%Connection%"==" Auto Connect" (
                        Echo Режим подключения          : Автоматическое подключение
                        )
                If "%Connection%"==" Profile" (
                        Echo Режим подключения          : Профиль
                        )
                Echo Канал                      :%Channel%
                Echo Скорость приема ^(Мбит/с^)  :%Receive%
                Echo Скорость передачи ^(Мбит/с^) :%Transmit%
                Echo Сигнал                    :%Signal%]
                Echo Профиль                    :%Profile%]
                )
        If "%State%"==" disconnected" (
                Echo Состояние                  : Отключено
                Echo SSID                      : Недоступно ^(Состояние : Отключено^)
                Echo BSSID                      : Недоступно ^(Состояние : Отключено^)
                Echo Тип сети                  : Недоступно ^(Состояние : Отключено^)
                Echo Тип радио                  : Недоступно ^(Состояние : Отключено^)
                Echo Проверка подлинности      : Недоступно ^(Состояние : Отключено^)
                Echo Шифр                      : Недоступно ^(Состояние : Отключено^)
                Echo Режим подключения          : Недоступно ^(Состояние : Отключено^)
                Echo Канал                      : Недоступно ^(Состояние : Отключено^)
                Echo Скорость приема ^(Мбит/с^)  : Недоступно ^(Состояние : Отключено^)
                Echo Скорость передачи ^(Мбит/с^) : Недоступно ^(Состояние : Отключено^)
                Echo Сигнал                    : Недоступно ^(Состояние : Отключено^)
                Echo Профиль                    : Недоступно ^(Состояние : Отключено^)
                )
        )
If "%There%"=="There is no wireless interface on the system." (
        Echo    Беспроводной интерфейс в системе отсутствует.
        Echo.
        Echo Имя                        : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Описание                  : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Идентификатор GUID        : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Физический адрес          : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Состояние                  : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo SSID                      : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo BSSID                      : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Тип сети                  : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Тип радио                  : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Проверка подлинности      : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Шифр                      : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Режим подключения          : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Канал                      : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Скорость приема ^(Мбит/с^)  : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Скорость передачи ^(Мбит/с^) : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Сигнал                    : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        Echo Профиль                    : Недоступно ^(Беспровод. интерфейс … отсутствует.^)
        )
Echo.
REM Echo Hosted: [%Hosted%]
If "%Hosted%"==" Not available" (
        Echo Состояние размещенной сети : Недоступно
        )
If "%Hosted%"==" Not started" (
        Echo Состояние размещенной сети : Не запущено
        )
If "%Hosted%"==" Started" (
        Echo Состояние размещенной сети : Запущено
        )
Echo.
Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала.
Pause >Nul

Set /a Count+=1
EndLocal & Set Count=%Count%
Goto Check



Ураинский допиливаю
НЕ ЗАБУДЬТЕ ВЫСТАВИТЬ ШРИФТ В ОКНЕ КОНСОЛИ НАПРИМЕР НА "LUCIDA CONSOLE" ПОСЛЕ ЭТОГО И УВИДИТЕ ВСЮ КИРИЛИЦУ.
У меня почему то норм работает НА WINDOWS 7.

ВОЗМОЖНО ВЫ ИСПОЛЬЗУЕТЕ ДРУГУЮ WINDOWS ?
И КАК ВСЛЕДСТВИИ РАЗНЫЕ ВЕРСИИ Netsh.EXE
ПОЖАЛУЙСТА ОТПИШИТЕ.

Цитата:

Цитата alpap
все это навевает на мысли что код готовят для запуска в массы »

Извините но будете смеятся код делаю лиш для себя.
Всё началось с банального иногда бегаю подому с Вай-Фай адаптером для того чтобы поймать наилучшый сигнал и тогда в правильном месте и направлении закрепить долбаный адаптер.
Украинский нужен так как я из Украины но а русский он и есть русский.
Сам я самоучка и это моё хобби.
Пожалуйста отпишите что работает а чего Вы бы подправили.

alpap 13-11-2020 19:51 2939878

Цитата:

Цитата wareznik3dll
Украинский нужен так как я из Украины »

? Я тоже из Украины, но мне как-то почти не нужен, постольку-поскольку (сейчас больше, конечно, а раньше в Киеве он вообще был даже не в почете - село)
Цитата:

Цитата wareznik3dll
код делаю лишь для себя. »

и те не менее ...
Появление новой задачи, как брошенный в воду камень, вызовет круги на воде:
- внимание публики к этой задаче, особенно с похожей проблемой
- открытый код
Вы мыслите только в рамках своей задачи и это понятно, но я на форуме частый гость и мыслю дальновидно да и бывал уже в подобных ситуациях.
Вот эта публика и будет задавать вопросы и выдвигать другие требования. И когда вот кто-то не сможет вывести то что надо именно ему он будет кидать камень в Ваш огород. Вам то все равно, уйдете и нет проблем, а общаться и отвечать на вопросы надо тем кто останется и причесывать Ваш код или делать новый под новые требования или вот как я заранее предусматривая возможный исход. А именно. Вывод должен быть возможен всего что в команде и в правильном виде, без пробелов в начале или конце чтобы можно было не только красиво видеть на экране, а и вывести в переменную, вставить в какую-то программу и чтобы при этом не было никаких ошибок. Надо в кодировке utf-8 если, то вот такой, например вариант (практически без извращений как в Ваших кодах выше, на которые без слез смотреть тяжело):
Код:

@echo off
chcp 65001>nul

for /f "skip=2 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces') do set "s2=%%b"& call :# "%%a"

echo Имя                        : %Name%
echo Описание                  : %Description%
echo Идентификатор GUID        : %GUID%
echo Физический адрес          : %Physical address%
echo Состояние                  : %State%
echo SSID                      : %SSID%
echo BSSID                      : %BSSID%
echo Тип сети                  : %Network type%
echo Тип радио                  : %Radio type%
echo Проверка подлинности      : %Authentication%
echo Шифр                      : %Cipher%
echo Режим подключения          : %Connection mode%
echo Канал                      : %Channel%
echo Скорость приема (Мбит/с)  : %Receive rate (Mbps)%
echo Скорость передачи (Мбит/с) : %Transmit rate (Mbps)%
echo Сигнал                    : %Signal%
echo Профиль                    : %Profile%
echo Состояние размещенной сети : %Hosted network status%
pause& exit

:#
 for /f "tokens=1-3" %%a in ("%~1") do (
  set "s1=%%a"
  if not "%%b"=="" set "s1=%%a %%b"
  if not "%%c"=="" set "s1=%%a %%b %%c"
 )
 if "%s2:~-1%"==" " set "s2=%s2:~0,-1%"
 set "%s1%=%s2:~1%"
exit /b

разные нужные Вам финтифлюшки (размер окна, язык, заголовок и пр.) добавьте сами, тут на вкус и цвет фломастеры разные.

wareznik3dll 13-11-2020 20:23 2939881

Цитата:

Цитата alpap
(практически без извращений как в Ваших кодах выше, на которые без слез смотреть тяжело): »

Так я не пойму где в моём коде изъян
Цитата:

Цитата wareznik3dll
Подправленный код для вывода всей инфы без (Find и FindStr) »

или Вы его не пробовали, если проблема в начальных пробелах в значениях переменной или в отсутствии (переведённых на другой язык) значений, тогда и над этим подумаю может и самому пригодится.

Но всё же каждый раз прошу дословно опишите места з изъянами.

wareznik3dll 13-11-2020 21:31 2939882

Цитата:

Цитата alpap
Ваша часть кода
Код:

:# for /f "tokens=1-3" %%a in ("%~1") do (
 set "s1=%%a"
 if not "%%b"=="" set "s1=%%a %%b"
 if not "%%c"=="" set "s1=%%a %%b %%c"
 )
 if "%s2:~-1%"==" " set "s2=%s2:~0,-1%"
 set "%s1%=%s2:~1%"
exit /b

»

Из неё (если неправилно понял обязательно поправте) я понял
Код:

:#
REM Переменная %1 всё что до : (со всеми пробелами) для использования в названиях переменных.
 for /f "tokens=1-3" %%a in ("%~1") do (
  set "s1=%%a" & REM Присваивает первое слово (до наступления пробела) для названия переменной.
  if not "%%b"=="" set "s1=%%a %%b" & REM Если для названия переменной подпадает (существует) второе слово, тогда лепит это слово к первому слову для названия переменной.
  if not "%%c"=="" set "s1=%%a %%b %%c" & REM Если для названия переменной подпадает (существует) третье слово, тогда лепит это слово к первому и второму словам для названия переменной.
 )
 if "%s2:~-1%"==" " set "s2=%s2:~0,-1%" & REM Убирает пробелы сзади значений переменной если таковы имеются.
 set "%s1%=%s2:~1%" & REM Убирает пробелы спереди значений переменной потому, что они там везде имеются.
exit /b


А что если уж понадобится и значение первой или точнее второй строки (первая наверное пуста)

На мой взгляд лучше использовать имена переменных с одним (первым) словом для продления жизни оперативной памяти тем самым и жрать оперативы будет меньше ведь это позволяет так как имена даже с этим первым словом нигде не совпадают
Вдобавок лучше ["%~1"] поменять на [%1] ведь оно одно и тоже, полчив код:

Код:

@echo off
chcp 65001>nul

for /f "skip=2 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces') do set "s2=%%b"& call :# "%%a"

echo Имя                        : "%Name%"
echo Описание                  : "%Description%"
echo Идентификатор GUID        : "%GUID%"
echo Физический адрес          : "%Physical%"
echo Состояние                  : "%State%"
echo SSID                      : "%SSID%"
echo BSSID                      : "%BSSID%"
echo Тип сети                  : "%Network%"
echo Тип радио                  : "%Radio%"
echo Проверка подлинности      : "%Authentication%"
echo Шифр                      : "%Cipher%"
echo Режим подключения          : "%Connection%"
echo Канал                      : "%Channel%"
echo Скорость приема (Мбит/с)  : "%Receive%"
echo Скорость передачи (Мбит/с) : "%Transmit%"
echo Сигнал                    : "%Signal%"
echo Профиль                    : "%Profile%"
echo Состояние размещенной сети : "%Hosted%"
pause& exit

:#
 for /f "tokens=1*" %%a in (%1) do (
  set "s1=%%a"
 )
 if "%s2:~-1%"==" " set "s2=%s2:~0,-1%"
 set "%s1%=%s2:~1%"
exit /b


wareznik3dll 13-11-2020 22:03 2939884

Извиняюсь но еще укоротил:
Более укороченная версия (дело вкуса)
Код:

@echo off
chcp 65001>nul

for /f "skip=3 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces') do set "s2=%%b"& call :# "%%a"

echo Имя                        : %Name%
echo Описание                  : %Description%
echo Идентификатор GUID        : %GUID%
echo Физический адрес          : %Physical%
echo Состояние                  : %State%
echo SSID                      : %SSID%
echo BSSID                      : %BSSID%
echo Тип сети                  : %Network%
echo Тип радио                  : %Radio%
echo Проверка подлинности      : %Authentication%
echo Шифр                      : %Cipher%
echo Режим подключения          : %Connection%
echo Канал                      : %Channel%
echo Скорость приема (Мбит/с)  : %Receive%
echo Скорость передачи (Мбит/с) : %Transmit%
echo Сигнал                    : %Signal%
echo Профиль                    : %Profile%
echo Состояние размещенной сети : %Hosted%
pause& exit

:#
 for /f %%a in (%1) do set "s1=%%a" & REM Убирает все переднии пробелы оставив при этом лишь первое слово для названия переменной.
 if "%s2:~-1%"==" " set "s2=%s2:~0,-1%" & REM Убирает один задний пробел из значения переменной, там где они имеются.
 set "%s1%=%s2:~1%" & REM Убирает один передний пробел из значения переменной, они там в каждом значении переменной.
exit /b



На мой взгляд полгче получилось нагрузки на проц и оперативу поменьшало хоть и чуть-чуть (иногда даже самая малость обыгрывает не на шутку) но и главное результат тотже

alpap 14-11-2020 00:05 2939896

Цитата:

Цитата wareznik3dll
Вдобавок лучше ["%~1"] поменять на [%1] ведь оно одно и тоже »

ну как сказать, если так написать и проверить, то да, но когда вдруг придет время редактировать, то появляется сразу два места для возможных проблем, лучше перестраховаться и делать как надо. Пример этому: set "name=%x%" и set name=%x% и говорить я точно знаю что выше переменная %x% не содержит пробела, но иногда наступает тот день в году когда незаряженное ружье стреляет.
И, кстати, Вы просили показать показать где в Ваших кодах извращения, так вот это оно и есть (все долго вытягивать, на этом покажу). Тот кто посмотрит на код бегло будет видеть команду в for /f без кавычек, а значит это файл, а в Вашем случае выходит строка, но это же надо прорабатывать ... - чем не извращение и главное для чего? Это дает какие-то плюсы?
Цитата:

Цитата wareznik3dll
получилось нагрузки на проц и оперативу поменьшало хоть и чуть-чуть »

сильно в этом сомневаюсь, возможно, но нмв не стоит оно того, ну дело Ваше, я дал рабочий проверенный код, а Вы уж крутите его для себя как угодно, шаблон есть и учиться никогда не вредно.

wareznik3dll 14-11-2020 01:00 2939899

Цитата:

Цитата alpap
Вдобавок лучше ["%~1"] поменять на [%1] ведь оно одно и тоже » »

Ещё раз повторю кодом они идентичны присмотритесь к [call :# "%%a"] Вы ж здесь уже взяли в кавычки
Код:

@echo off
chcp 65001>nul

for /f "skip=3 tokens=1* delims=:" %%a in ('Netsh Wlan Show Interfaces') do set "s2=%%b"& call :# "%%a"
pause
:#
Echo %%1  : [%1]
Echo "%%~1": ["%~1"]
exit /b

Выводом будет:

%1 : [" Name "]
"%~1": [" Name "]
%1 : [" Description "]
"%~1": [" Description "]
%1 : [" GUID "]
"%~1": [" GUID "]
%1 : [" Physical address "]
"%~1": [" Physical address "]
%1 : [" State "]
"%~1": [" State "]
%1 : [" SSID "]
"%~1": [" SSID "]
%1 : [" BSSID "]
"%~1": [" BSSID "]
%1 : [" Network type "]
"%~1": [" Network type "]
%1 : [" Radio type "]
"%~1": [" Radio type "]
%1 : [" Authentication "]
"%~1": [" Authentication "]
%1 : [" Cipher "]
"%~1": [" Cipher "]
%1 : [" Connection mode "]
"%~1": [" Connection mode "]
%1 : [" Channel "]
"%~1": [" Channel "]
%1 : [" Receive rate (Mbps) "]
"%~1": [" Receive rate (Mbps) "]
%1 : [" Transmit rate (Mbps) "]
"%~1": [" Transmit rate (Mbps) "]
%1 : [" Signal "]
"%~1": [" Signal "]
%1 : [" Profile "]
"%~1": [" Profile "]
%1 : [" Hosted network status "]
"%~1": [" Hosted network status "]
%1 : [" Hosted network clients "]
"%~1": [" Hosted network clients "]
Press any key to continue . . .


Объясню ["%~1"] из этой переменной уже идущей с кавычками переменной [%1] тильдой [~] Вы забираете кавычки и потом зачем-то обратно обрамляете эту же переменную новыми таким же кавычками.

Согласитесь же в конце то концов и у Вас есть косяки примеру этого,а то уже как, то задолбало говорите про мои косяки, но не всегда на них указываете.

Извините просто на меня в этой теме больше бросались хоть и у Вас всех бывали косяки и я на них указывал.
Плюс я самоучка и не считаю себя даже на ровне с Вами (считаю себя менее мудрым) а Вы все мудрые, но...


Цитата:

Цитата alpap
ну дело Ваше, я дал рабочий проверенный код, а Вы уж крутите его для себя как угодно, шаблон есть и учиться никогда не вредно. »

Ну знаете Вы дали так же как и я подправил, так же как и Вы до этого что взяли у меня, а перед тем взял что у Вас и т. д.
Также не забудем и про уважаемого Iska
Я считаю что при помощи каждого кто ведет дискуссию и получается "жемчужинка" согласитесь это командная работа.
И я очень Вам признателен, что Вы так дооооолго держитесь со мной в допилке кода.
Спасибо!!!

wareznik3dll 14-11-2020 01:31 2939901

У себя только что тоже обнаружил косяк:
Код:

for /f %%a in (%1) do set "s1=%%a"
так как в имя переменной попадает только одно слово и без спецсимволов тогда можна и так:
Код:

for /f %%a in (%1) do set s1=%%a
Наверное дурные привычки...
Но это только ели далее не будет ни одного лишнего символа например НЕ ПОДОЙДЕТ:
Код:

for /f %%a in (%1) do set s1=%%a & REM Убирает все переднии пробелы оставив при этом лишь первое слово для названия переменной.
А вот так ПОДОЙДЕТ:
Код:

for /f %%a in (%1) do set s1=%%a& REM Убирает все переднии пробелы оставив при этом лишь первое слово для названия переменной.
Убрав пробел между [a &] в [%%a & REM]

wareznik3dll 14-11-2020 02:57 2939904

Цитата:

Цитата alpap
Тот кто посмотрит на код бегло будет видеть команду в for /f без кавычек, а значит это файл, а в Вашем случае выходит строка »

Вы имеете в виду это:
FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры]
Но если Вы еще хотите показать кому-то что это строка то я извиняюсь, но это же Вы писали код.

И в добавок IN ("строка") DO это для тех кто пишет код, а не читает и нетрудно присмотреться что в переменную %1 била послана другая переменная уже взятая в кавычки командой call :# "%%a"

Эти мои извращения как Вы говорите Вы, расцениваете как ошибку или как извращение над Вашой личностью?
Как мне это понимать?!!

Ещё хочу узнать у Вас так как Вы умнее просмотрите ниже не пойму как но просто строка из кода:
Код:

Netsh Wlan Show Interfaces
Дала мне на вывод чуднную инфу, которая во второй раз и 100-й больше не является:

Signal : 78%
Profile : ................

Hosted network status : Started
Hosted network clients : 7c:d6:61:bf:50:9b

Что за Hosted network clients : 7c:d6:61:bf:50:9b

wareznik3dll 14-11-2020 05:03 2939909

Ещё одна проблема ни в Вашем последим ни в Вашем строщённом мною никак не удаётся вывести одну из строк:

Вот эту не удаётся, вылет батника:
There is no wireless interface on the system.
Беспроводной интерфейс в системе отсутствует.

А эту удаётся:
There is 1 interface on the system:
В системе 1 интерфейс:

А от мой хоть и с пробелами сзади в значениях двух переменных и с пробелами в начале значений каждой переменной
НО РАБОТАЕТ!!!
Цитата:

Цитата wareznik3dll
Подправленный код для вывода всей инфы без (Find и FindStr) »

Хотя уже задумывал использовать Ваш подпиленный мной, но видно опять придётся вернуться к своему


Время: 19:38.

Время: 19:38.
© OSzone.net 2001-