抓取批处理文本内容并将其放入变量中

时间:2015-12-10 03:42:39

标签: variables batch-file

好吧,我有这个命令

netsh wlan show profiles

假装出现的无线网络名为Zask.router

提示符应该是这样的;

............................................... ...........

接口wifi上的个人资料:

组策略配置文件(只读)

<none>

用户个人资料

All User Profile     : Zask.router

............................................... ...........

有什么方法可以将内容“Zask.router”放在变量中吗?

好的,谢谢,新问题。我将代码改为此;

for /f "tokens=4 delims=: " %%A in ('netsh wlan show profiles') do set "profile=%%A"

现在我将其添加到下一行;

netsh wlan show profiles "%profile%" key=clear

那么说“关键内容”(必须是管理员)的东西旁边应该出现一个wifi密码,如何获取密码也进入变量? 我试着做这样的事情,但它只是出于某种奇怪的原因显示“这样”这个词......

for /f "tokens=4 delims=: " %%A in ('netsh wlan show profiles') do set "profile=%%A
for /f "tokens=4 delims=: " %%A in ('netsh wlan show profiles "%profile%" key=clear') do set "profile2=%%A"
echo %profile2%

1 个答案:

答案 0 :(得分:2)

假设您想要的输出位于最后一行......

for /f "tokens=4 delims=: " %%A in ('netsh wlan show profiles') do set "YourVariable=%%A"

使用“FOR /?”命令查看FOR命令的帮助。我们使用它将你的行分成由空格或:

分隔的标记
  • tokens = 4指定我们要保存第4个令牌
  • delims = :( space)指定字符“:”和“”是分隔符
  • 正在为NETSH命令的输出中的每一行设置YourVariable。在这种情况下,因为我们只关心它的最后一行,而不需要比较文本来找到所需的行。