Я пытаюсь получить доступ к своему ключу безопасности сети, используя цикл for /f
.Команда, которую я использую для ее получения (в cmd), выглядит следующим образом:
netsh wlan show profiles name="NETWORK NAME" key=clear
Не думаю, что это важно, но имя сети включает два слова, разделенных пробелом.
Я сделал несколько попыток:
1. Попробуйте разобрать его простым способом:
for /f "tokens=4" %%A IN ('netsh wlan show profiles name="NETWORK NAME" key=clear ^| findstr /c:"Key content"') do echo %%A
У этого не было вывода, поэтому я попытался:
for /f "tokens=4" %%A IN ('netsh wlan show profiles name="NETWORK NAME" key=clear') do echo %%A
который показал мне:
parameters
[[name=]<string>]
of
of
display
data
interface
is
profile
is
listed.
will
set
be
are
preference
1"
2"
3"
который с delims=
опциями:
One or more parameters for the command are not correct or missing.
Usage: show profiles [[name=]<string>] [interface=<string>] [key=<string>]
Parameters:
Tag Value
name - Name of the profile to display.
interface - Name of the interface which has this profile configured.
key - To display the key in plain text, set key=clear.
Remarks:
Shows the profile data or lists the profiles on the system.
Parameter name and interface are both optional.
If profile name is given then the content of the profile will be
displayed. Otherwise only profile name and description will be listed.
If interface name is given, only the specified profile on the given
interface will be listed. Otherwise, all profiles with the given name
on the system will be listed.
If key is set to "clear" and the caller is local administrator,
the key will be shown in plain text.
Group Policy Profiles are read only. User Profiles are readable and
writeable, and the preference order can be changed.
Examples:
show profiles name="profile 1" interface="Wireless Network Connection"
show profiles name="profile 2"
show profiles name="profile 3" key=clear
show profiles
2. Использование usebackq
:
for /f "usebackq delims=" %%A IN (`netsh wlan show profiles name="NETWORK NAME" key=clear`) do echo %%A
Тот же вывод, что и выше ...
3. Установить сетевое имя как переменную в кавычках:
set network="NETWORK NAME"
for /f "delims=" %%A IN ('netsh wlan show profiles name=%network% key=clear') do echo %%A
То жевыводите, как указано выше, даже используя usebackq
.
4. Установите имя сети в качестве переменной без кавычек:
set network=NETWORK NAME
for /f "delims=" %%A IN ('netsh wlan show profiles name="%network%" key=clear') do echo %%A
Тот же вывод, что и выше, даже с usebackq
.
Что мне здесь не хватает?