[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理for命令怎样截取字符?

大家好,我有个问题想求助一下。

首先来说这个命令“netsh interface show interface”
这个命令列出了本机上的一些连接
管理员状态           状态                            类型
----------------------------------------------------------------------------
启用               专用                             本地连接
启用               专用                               环回
启用               专用         VMware Network Adapter VMnet8
启用               专用         VMware Network Adapter VMnet1
---------------------------------------------------------------------------------
就简单列举这么多  我的目的 就是将VMware Network Adapter VMnet8
                                                VMware Network Adapter VMnet1
这两行单独列出来
虚拟机本地连接列表:
VMware Network Adapter VMnet1
VMware Network Adapter VMnet8
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# 秋风·飞扬
  1. for /f "skip3 tokens=3*" %%a in  ('netsh interface show interface ') do (
  2. if %%a = VMware echo %%a
  3. )
复制代码
以上是我写的第一个代码,只能输出单词 ,①我试着吧3*改成3-6还是不行。
                                       ②不加delims=还好,加上了根本就什么都不输出了。

TOP

回复 2# 秋风·飞扬
  1. for /f "skip=3 tokens=3" %%a in ('netsh interface show interface') do (
  2. set /a n+=1
  3. if %%a =VMware  ( for /f  "skip=3 tokens=*" %%c in ('netsh interface show interface') do (
  4. set /a m+=1
  5. if !m!=!n! echo %%c & set m=0
  6. )))
复制代码
在接近崩溃的情况下 ,我的思维越来越复杂,就写出了这样一个代码。因为2楼的代码无论我怎么改都不能完整输出,所以我用这种匹配VWware关键字的方法来套一个for循环再整行输出,但是!输多了,VMware  Network Adaper VMnet 1  输出了两次 又输出别的连接一次,我实在是没辙了,不好意思麻烦大家了~

TOP

  1. netsh interface show interface | find "VMware Network Adapter VMnet"
复制代码
1

评分人数

TOP

把 for /f 掌握好了就不成问题
  1. @echo off
  2. for /f "tokens=2*" %%a in ('netsh interface show interface') do (
  3.    for "delims=0123456789" %%c in ("%%b") do (
  4.       if "%%c"=="VMware Network Adapter VMnet" echo %%b
  5.    )
  6. )
复制代码
1

评分人数

TOP

回复 4# gawk


    多谢多谢,这个方法刚开始用了,但开始的时候不知道怎么输出

TOP

回复 5# CrLf


    谢版主,我继续试验,我还有一事不明,我2楼代码的几个问题,为什么会出现那些问题

TOP

回复 7# 秋风·飞扬


    因为CMD不认识%%a = VMware这种你自己发明的语法

TOP

回复 8# gawk


    - - 好吧,新手上路多多指教,其实我的意思能不能让if 语句判断结果与字符串是否相等,相等 就输出那一行,我是不是应该吧VMware后面的全部写上?

TOP

回复 9# 秋风·飞扬


    指教谈不上,先给个建议吧。当你想问是不是xxx或者xxx行不行之前,冷静一下,暂不发帖,亲自试试先。如果没有测试成功再问。还有,仔细数一数你的代码和别人的代码里各有几个等号。

TOP

回复 9# 秋风·飞扬


    if /?
string1==string2  如果指定的文字字符串匹配,指定条件为 true。

TOP

回复 10# gawk


    昨天确实山穷水尽了,水平在那里摆着呢,你也看出来了我这个号是新注册不久的,昨天连三个小时都在测试那个,我脑袋又笨,出现问题再所难免啊,左试右试都试不出来,才来发帖的

TOP

回复 11# CrLf


    我就说有这个嘛,哈哈 ,放学了,去弄批处理

TOP

回复 10# gawk


    等号的问题,这个以后我会注意的

TOP

回复 10# gawk


    我的问题是不是很烦人?

TOP

返回列表