String 如何使用批处理编程访问子字符串?另外,如何使用批处理编程操作字符串以将其用作整数值?

String 如何使用批处理编程访问子字符串?另外,如何使用批处理编程操作字符串以将其用作整数值?,string,batch-file,String,Batch File,我打字之后 netsh wlan show interfaces netsh wlan show interfaces > interface.txt 在系统的命令提示符中,我获取当前连接配置文件。我感兴趣的是从interface.txt文件中查找“:”部分后面的“Profile”部分的字符串部分 我希望程序使用findstr搜索“Profile”,然后提取同一行中的字符串部分,以便生成的代码可以重用。我该怎么做呢 另外,如何使用text文件中的string数据将其作为整数数据进行操作

我打字之后

netsh wlan show interfaces
netsh wlan show interfaces > interface.txt
在系统的命令提示符中,我获取当前连接配置文件。我感兴趣的是从
interface.txt
文件中查找“
”部分后面的“
Profile
”部分的字符串部分

我希望程序使用
findstr
搜索“Profile”,然后提取同一行中的字符串部分,以便生成的代码可以重用。我该怎么做呢

另外,如何使用
text
文件中的
string
数据将其作为
整数
数据进行操作

样本输出:

EDITNpcmaka的评论提醒我,有些值(例如“物理地址”)包含冒号。编辑代码以完成这些值


注意:这些值有一个起始空间;通过在分隔符中添加空格,这是可以避免的,但另一方面,某些描述有多个单词(“网络类型”),因此这是有问题的。所以我决定让他们进来,并对变量进行“后处理”。

您可以简单地使用
FOR
作为delimeter拆分字符串。说你的刺像

设置字符串=something:somethingelse甚至更多的内容,您希望访问somethingelse

然后你可以使用这个:

REM this is to get everithing on the right of :
FOR /F "tokens=2 delims=:" %%X IN ("%yourstring%") DO SET substring=%%X
REM this is to get the first token after the first white space
FOR /F "tokens=1 delims= " %%X IN ("%substring%") DO SET yourvalue=%%X
现在%yourvalue%将包含某些内容

回答你的第二个问题:


如果要将表示数字的字符串视为整数,则必须使用
SET/a varname=%stringwithinteger%
/A
允许您对变量进行算术运算。

该命令的确切输出是什么?由于我的机器上没有无线设备,我不知道要查找什么。空格不应该也作为分隔符包含吗?在这种特殊情况下,是的。但总的来说,这可能会有问题,因为“令牌1”可能由几个词组成(例如“网络类型:”)。我试着使用您的代码。它说“语法不正确”。我需要做任何更改吗?抱歉,传输失败。。。编辑。请重试。请澄清,值VOLSBB存储在p中,接收速率值存储在r中,是吗?如果我从文本文件中提取字符串,仍然是相同的“SET/A”部分?是的,如果要将变量视为整数,请始终使用/A。
REM this is to get everithing on the right of :
FOR /F "tokens=2 delims=:" %%X IN ("%yourstring%") DO SET substring=%%X
REM this is to get the first token after the first white space
FOR /F "tokens=1 delims= " %%X IN ("%substring%") DO SET yourvalue=%%X