|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка состояния Wi-Fi и уровня его сигнала |
|
CMD/BAT - [решено] Проверка состояния Wi-Fi и уровня его сигнала
|
Новый участник Сообщения: 30 |
Профиль | Отправить PM | Цитировать
Есть код для проверки состояния 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 |
|
Отправлено: 23:21, 07-11-2020 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Подправленный код для вывода всей инфы без (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:
Всё началось с банального иногда бегаю подому с Вай-Фай адаптером для того чтобы поймать наилучшый сигнал и тогда в правильном месте и направлении закрепить долбаный адаптер. Украинский нужен так как я из Украины но а русский он и есть русский. Сам я самоучка и это моё хобби. Пожалуйста отпишите что работает а чего Вы бы подправили. |
|
Последний раз редактировалось wareznik3dll, 13-11-2020 в 19:21. Отправлено: 18:22, 13-11-2020 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата 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 |
||
Отправлено: 19:51, 13-11-2020 | #32 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Цитата wareznik3dll:
Но всё же каждый раз прошу дословно опишите места з изъянами. |
||
Отправлено: 20:23, 13-11-2020 | #33 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Из неё (если неправилно понял обязательно поправте) я понял
:# 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 в 21:54. Отправлено: 21:31, 13-11-2020 | #34 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Извиняюсь но еще укоротил:
Более укороченная версия (дело вкуса)
@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 На мой взгляд полгче получилось нагрузки на проц и оперативу поменьшало хоть и чуть-чуть (иногда даже самая малость обыгрывает не на шутку) но и главное результат тотже |
Последний раз редактировалось wareznik3dll, 13-11-2020 в 22:42. Отправлено: 22:03, 13-11-2020 | #35 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата wareznik3dll:
И, кстати, Вы просили показать показать где в Ваших кодах извращения, так вот это оно и есть (все долго вытягивать, на этом покажу). Тот кто посмотрит на код бегло будет видеть команду в for /f без кавычек, а значит это файл, а в Вашем случае выходит строка, но это же надо прорабатывать ... - чем не извращение и главное для чего? Это дает какие-то плюсы? Цитата wareznik3dll:
|
||
Последний раз редактировалось alpap, 14-11-2020 в 00:33. Отправлено: 00:05, 14-11-2020 | #36 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
@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 в 02:39. Отправлено: 01:00, 14-11-2020 | #37 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать У себя только что тоже обнаружил косяк:
так как в имя переменной попадает только одно слово и без спецсимволов тогда можна и так: Наверное дурные привычки... Но это только ели далее не будет ни одного лишнего символа например НЕ ПОДОЙДЕТ: for /f %%a in (%1) do set s1=%%a & REM Убирает все переднии пробелы оставив при этом лишь первое слово для названия переменной. Убрав пробел между [a &] в [%%a & REM] |
Последний раз редактировалось wareznik3dll, 14-11-2020 в 01:46. Отправлено: 01:31, 14-11-2020 | #38 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры] Но если Вы еще хотите показать кому-то что это строка то я извиняюсь, но это же Вы писали код. И в добавок IN ("строка") DO это для тех кто пишет код, а не читает и нетрудно присмотреться что в переменную %1 била послана другая переменная уже взятая в кавычки командой call :# "%%a" Эти мои извращения как Вы говорите Вы, расцениваете как ошибку или как извращение над Вашой личностью? Как мне это понимать?!! Ещё хочу узнать у Вас так как Вы умнее просмотрите ниже не пойму как но просто строка из кода: Дала мне на вывод чуднную инфу, которая во второй раз и 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 |
|
Отправлено: 02:57, 14-11-2020 | #39 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Ещё одна проблема ни в Вашем последим ни в Вашем строщённом мною никак не удаётся вывести одну из строк:
Вот эту не удаётся, вылет батника: There is no wireless interface on the system. Беспроводной интерфейс в системе отсутствует. А эту удаётся: There is 1 interface on the system: В системе 1 интерфейс: А от мой хоть и с пробелами сзади в значениях двух переменных и с пробелами в начале значений каждой переменной НО РАБОТАЕТ!!! Цитата wareznik3dll:
|
|
Последний раз редактировалось wareznik3dll, 15-11-2020 в 21:43. Отправлено: 05:03, 14-11-2020 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - Усиление Wi-Fi сигнала | weritos | Сетевое оборудование | 3 | 13-03-2014 08:49 | |
Прочее - Приоритетное использование сигнала WI-FI | 2gan | Сетевые технологии | 36 | 27-06-2013 17:30 | |
Broadcom анонсировала чипы 5G Wi-Fi для устройств начального уровня | OSZone News | Новости железа | 1 | 25-05-2013 16:02 | |
Wireless - Всплеск сигнала Wi-Fi | westland77 | Сетевое оборудование | 6 | 12-07-2012 13:05 | |
Доступ - Слабый уровень сигнала WI-FI | Grafnet | Microsoft Windows Vista | 0 | 10-11-2009 17:51 |
|