Используйте цикл for /f
, чтобы получить выходные данные команды. Вы можете использовать правильные токены и разделители для извлечения части строки, которую вы хотите, но синтаксис немного странный, чтобы использовать кавычки в качестве разделителя:
for /f tokens^=2delims^=^" %%a in ('Netsh WLAN show profile "profilename"^|find "SSID-Name"') do set "SSIDa=%%a"
echo a: %SSIDa%
Другая возможность - использовать двоеточие в качестве разделителя. Но тогда вы должны удалить лишнее пространство и кавычки:
for /f "tokens=2 delims=:" %%a in ('Netsh WLAN show profile "profilename"^|find "SSID-Name"') do set "SSIDb=%%~a"
echo b: %SSIDb:~2,-1%
Вы также можете использовать второй for
, чтобы получить последний токен в строке (это имя, которое вы хотите):
for /f "delims=" %%a in ('Netsh WLAN show profile "profilename"^|find "SSID-Name"') do for %%b in (%%a) do set "SSIDc=%%~b"
echo c: %SSIDc%
Четвертая возможность - использовать tokens=3
(со стандартными разделителями), но это неправильный (небезопасный) выбор, потому что вывод (количество токенов) может изменяться в зависимости от локализации (с другой стороны, также от вашей строки поиска SSID-Name
зависит от локализации).