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

时间:2015-01-15 11:39:52

标签: string batch-file

输入

netsh wlan show interfaces
netsh wlan show interfaces > interface.txt

在我系统的命令提示符下,我获取了当前的连接配置文件。我有兴趣找出' Profile'的字符串部分。 ' :'之后的部分部分来自interface.txt文件。

我更喜欢这个程序去搜索'个人资料'使用findstr然后在同一行中提取字符串部分,以便可以重用生成的代码。我该怎么做呢?

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

示例输出:

2 个答案:

答案 0 :(得分:1)

for /f "tokens=1,* delims=:" %%i in ('netsh wlan show interfaces^|find "  Profile"') do set p=%%j
echo %p: =%
for /f "tokens=1,* delims=:" %%i in ('netsh wlan show interfaces^|find "  Receive rate"') do set r=%%j
echo %r:~1%

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

注意:这些值有一个起始空间;通过为分隔符添加空间,可以避免这种情况,但另一方面,某些描述有多个单词(“网络类型”),因此这是有问题的。所以我决定让他们进入并“替换”变量。

答案 1 :(得分:1)

您可以使用FOR:作为分隔符来简单地拆分字符串。说你的刺痛就像

  

设置yourstring = 某些内容 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%将包含 somethingelse

回答你的第二个问题:

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