Как я могу назначить имя текущей сети Wi-Fi переменной в пакетном сценарии Windows?

Я пытаюсь добавить строку в свой сценарий запуска, которая автоматически запускала бы VPN, если я подключен к сетям WiFi вне моей работы.

Я могу получить имена из команд netsh wlan, но я не могу просто «выбрать» из них SSID/имя сети.

Есть ли способ извлечь конкретную информацию из вывода netsh или есть способ вывести только имя Wi-Fi?

Заранее спасибо.


person NVAR    schedule 09.06.2017    source источник


Ответы (1)


Вы можете использовать команду findstr, чтобы найти строку в командах, в частности SSID.

Сценарий:

@echo off
set "wifiNetwork=example network"

(netsh wlan show networks | findstr /C:": %wifiNetwork%" >nul 2>&1)&&goto :found

echo Wi-Fi network "%wifiNetwork%" not found
goto :end

:found
echo Wi-Fi network "%wifiNetwork%" found!

:end
pause

ПРИМЕЧАНИЕ. В команде findstr учитывается регистр, если вы не добавите параметр /I

person Sam Denty    schedule 09.06.2017
comment
Спасибо. Не могли бы вы рассказать мне, что делает эта часть? findstr /C:": %wifiNetwork%" >nul 2>&1) Ах, вы избавились от части if, которую я планировал использовать, используя goto. Потрясающий. Спасибо. - person NVAR; 09.06.2017
comment
@NVAR Команда findstr ищет в выводе netsh wlan имя сети — %wifiNetwork%. Если найдет, то goto :found - person Sam Denty; 09.06.2017