2016-01-29 2 views
1

Следующий код отлично работает, когда имя сохраненного профиля wifi является одним словом или не имеет пробелов.командная строка не работает, когда переменная строка имеет пробел

"Belkin" работает,

"Belkin.536.guests" работает,

"Моя сеть" не работает,

Ошибка: «Там нет такого беспроводного интерфейса на система «.

У меня около 15 сетевых профилей на моем компьютере, и только те, которые не сотрудничают с кодом, имеют в них пробел. Команда «ECHO» работает каждый раз правильно, поэтому я вижу, что переменная выглядит корректно.

NETSH WLAN SHOW PROFILES 
SET/P "PROFILE=Enter Profile Name : " 
ECHO Showing Info For : %PROFILE% 
NETSH WLAN SHOW PROFILES NAME=%PROFILE% key=clear 

Скажите, пожалуйста, что я делаю неправильно.

+2

Прилагаем вещи с пробелами в кавычки. 'NETSH WLAN SHOW PROFILES NAME ="% PROFILE% "' –

ответ

1

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

+0

Да! Это прекрасно работает, спасибо! Все –

0

NETSH WLAN SHOW PROFILES NAME=%PROFILE% key=clear

Если %PROFILE% является My Network, то вы выполняете эту команду, и он думает, что "Сеть" является еще одним параметром:

NETSH WLAN SHOW PROFILES NAME=My Network key=clear

Однако, если вы просто добавить кавычки как это:

NETSH WLAN SHOW PROFILES NAME="%PROFILE%" key=clear

Теперь вы выполняете эту команду:

NETSH WLAN SHOW PROFILES NAME="My Network" key=clear

0

Используйте подстановочные или * в вашей команде. Например:

NETSH WLAN SHOW PROFILES NAME="My*" 

или просмотреть все соединения (страница за страницей):

NETSH WLAN SHOW PROFILES NAME=*|more 
Смежные вопросы