我正在尝试获取所有已知的WiFi SSID,包括密码。
当我使用下面的脚本时,我不能让它在双引号中设置SSID,(所以空格等是正确使用的)。
另外,当我有特殊字符,如感叹号,他们消失。
有人能帮帮我吗
@ECHO OFF
setlocal EnableExtensions DisableDelayedExpansion
color 02
netsh wlan show profiles | findstr /R /C:"[ ]:[ ]" > temp.txt
echo @echo off >> helper.bat
echo setlocal enabledelayedexpansion >> helper.bat
echo for /f "tokens=5*" %%%%i in (temp.txt) do ( set val=%%%%i %%%%j >> helper.bat
echo if "!val:~-1!" == " " set val=!val:~2,-1! >> helper.bat
echo echo !val! ^>^> final.txt) >> helper.bat
echo for /f "tokens=*" %%%%i in (final.txt) do @echo SSID: %%%%i ^>^> others_%computername%.txt ^& echo # ================================================ ^>^> others_%computername%.txt ^& netsh wlan show profiles name=%%%%i key=clear ^| findstr /N /R /C:"[ ]:[ ]" ^| findstr 33 ^>^> others_%computername%.txt ^& echo # ================================================ ^>^> others_%computername%.txt ^& echo # Key content is the password of your target SSID. ^>^> others_%computername%.txt ^& echo # ================================================ ^>^> others_%computername%.txt >> helper.bat
REM echo del /f /q temp.txt final.txt >> helper.bat
echo exit >> helper.bat
start "" /wait helper.bat
exit
字符串
输出例如:原始(temp.txt):
Profil fr alle Benutzer : 1FRITZ!Box Fon WLAN 7390
型
final.txt中的输出:
1FRITZBox Fon WLAN 7390
型
在final.txt中应该是什么样子:
"1FRITZ!Box Fon WLAN 7390"
型
1条答案
按热度按时间4si2a6ki1#
这里是你的原始代码,删除了不必要的东西,修复和改进。它不再写入额外的文件或定义变量。这应该意味着
echo
对某些字符的作用不会影响输出,因此密码短语双引号是不必要的。字符串
netsh.exe
总是在所有系统的同一行上输出目标字符串。