因此,我想为练习起见,并且因为这是我日常生活中需要的工具,所以不要太费力。 因此,通过谷歌搜索,我设法打印出了我的ipadress,而没有通过显示以下内容显示所有其他ipconfig内容:
SARIMA.index=pd.DatetimeIndex(SARIMA.index.values, freq='D')
现在我想要类似的东西 netsh wlan显示配置文件
仅显示配置文件,没有其他内容,因此我尝试了相同的操作,所以我写了这篇文章
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b
set ip=%ip:~1%
echo Your Ipv4 Adress is: %ip%
cmd /k
但是它只是关闭了打开cmd,就像我手动打开它而不写东西一样。
如果有人可以向我解释我在哪里犯了错误,因为第一个错误起作用了,第二个错误了,我将不胜感激
答案 0 :(得分:0)
由于您的代码可能会基于网络上的其他适配器而产生偏差,因此,我将向您展示获取IPv4的更好方法。这样做非常棘手,因为您必须对每个适配器进行排序。在您的示例中,它只会在ipconfig
列表中捕获最后一个。
要解决此问题,您可以先找到适配器,然后找到与该适配器关联的下一个ipv4。在许多情况下,您想要的ipv4将被命名为Wireless LAN adapter Wi-Fi
。确保将其更改为您尊敬的网络适配器。在批处理脚本中,%adress%
将是IPv4
字符串。
查找IPv4脚本批处理:
@echo off
setlocal enabledelayedexpansion
set "adapter=Wireless LAN adapter Wi-Fi"
set adapterfound=false
for /f "tokens=1-2 delims=:" %%f in ('ipconfig') do (
set "item=%%f"
if /i "!item!"=="!adapter!" (
set adapterfound=true
) else if not "!item!"=="!item:IPv4 Address=!" if "!adapterfound!"=="true" (
set "adress=%%g"
set adress=!adress:* =%!
set adapterfound=false
)
)
echo Your IPv4 Address: %adress%
pause
goto :EOF
要仅使用netsh wlan show profiles
查找个人资料名称,正确的方法是将for loop
与tokens
和skip
一起使用。
由于netsh wlan show profiles
的乞讨行始终相同,因此我们可以跳过前4行,然后使用令牌仅捕获第4个空格 之后的所有内容(在我们的示例中即网络配置文件名称)。在下面,变量%%b
将是您的Wi-Fi名称。
仅捕获配置文件名称的批处理:
@echo off
Rem | Grab all profile names
for /f "tokens=4,* skip=4" %%a in ('netsh wlan show profile') do (
echo [WIFI-NAME: %%b]
)
pause
goto :EOF
使用此方法,我们甚至可以进一步使用netsh wlan show profile "NAME" key^=clear
来获取具有配置文件名称的每个密码,并提取Key Content
或->
密码。使用一系列的for loops
可以整洁有序。 REM
的风箱将进一步说明该过程。
列表配置文件+密码批处理:
@echo off
Rem | Grab all profiles
for /f "tokens=4,* skip=4" %%a in ('netsh wlan show profile') do (
Rem | Grab key for each profile
for /f "tokens=*" %%c in ('netsh wlan show profile "%%b" key^=clear') do (
Rem | Grab only key
for /f "tokens=3,*" %%d in ('echo %%c^| find /i "Key Content"') do (
Rem | Display & Record key
echo [WIFI-NAME: %%b] [CURRENT-PASSWORD: %%e]
)
)
)
pause
goto :EOF
要获取有关任何命令的帮助,请执行以下操作: