Board logo

标题: [网络连接] 批处理for命令tokens怎么提取到空格后面的数字? [打印本页]

作者: gsfgood    时间: 2019-6-4 10:08     标题: 批处理for命令tokens怎么提取到空格后面的数字?

最近才用tokens这个命令,目的是想实现判断本地连接名称然后实现批处理修改IP,但是我发现有的电脑是本地连接 2,中间有个空格,导致提取时只能提取到本地连接这几个字,请高手指教,谢谢
for /f "tokens=4*" %%a in ('netsh interface show interface ^| findstr "已连接"') do set "ConName=%%~a"
echo 当前正在上网的网络连接名是【%ConName%】
pause
作者: Batcher    时间: 2019-6-4 10:43

set "ConName=%%a%%b"
试试这样可以吗?
作者: zaqmlp    时间: 2019-6-4 11:17

……"tokens=3*"……set "ConName=%%b"
作者: gsfgood    时间: 2019-6-4 11:28

回复 3# zaqmlp

可以了,谢谢,大佬给力
作者: asd674744769    时间: 2022-1-12 16:38

回复 3# zaqmlp


    你好 我想问一下
@echo off
setlocal enabledelayedexpansion
set "n=0"
for /f "skip=3 tokens=4* " %%i in ('netsh interface show interface') do (
        
        set /a n+=1
        set "name!n!=%%i"
        
        
)
for /l %%i in (1,1,%n%) do echo %%i:!name%%i!
:Select_Card
set /p "Select_Card=选择网卡(请勿选择本地连接):"
if "%Select_Card%" == "1" ( set card=!name1! ) else (
if "%Select_Card%" == "2" ( set card=!name2! ) else (
if "%Select_Card%" == "3" ( set card=!name3! ) else (
if "%Select_Card%" == "4" ( set card=!name4! ) else (
if "%Select_Card%" == "5" ( set card=!name5! ) else ( echo. & echo 未键入任何参数! & pause>nul & cls & goto :Select_Card )))))

set /a random=%random%%%230
netsh interface ip set address %card% static 192.168.225.%random% 255.255.255.0


pause&exit

netsh interface show interface


我这个怎么显示 空格后面的内容




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2