批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文本处理] 【已解决】批处理for /f do (if)怎么样才可以按if语句的执行顺序显示?

本帖最后由 uranus12 于 2020-11-18 14:49 编辑

怎么样才可以按if语句的执行顺序显示?还有去掉空行啊?
  1. @echo off
  2. set apath="E:\Mydata\%Username%\Desktop\ip地址.txt"
  3. for /f "tokens=1,2,3 delims=={,}" %%a in ('wmic NICCONFIG where "IPEnabled='TRUE' and DHCPEnabled='TRUE'" get Description^,MacAddress^,DefaultIPGateway^,DNSServerSearchOrder^,IPAddress^,IPSubnet /value^|findstr "="') do (
  4.                 if "%%a"=="Description" (echo;网卡名称=%%~b>>1.txt
  5.                ) else if "%%a"=="IPAddress" (echo;IP地址=%%~b>>1.txt
  6.                ) else if "%%a"=="IPSubnet" (echo;子网掩码=%%~b>>1.txt
  7.                ) else if "%%a"=="DefaultIPGateway" (echo;默认网关=%%~b >>1.txt
  8.                ) else if "%%a"=="DNSServerSearchOrder" (echo;DNS1=%%~b>>1.txt&echo;DNS2=%%~c>>1.txt
  9.                ) else if "%%a"=="MACAddress" (echo;MAC地址=%%~b>>1.txt)
  10. )
  11. pause
复制代码
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

回复 1# uranus12


先解决第一个问题,把 get 后面的字段顺序调整一下跟 if 的顺序保持一致是否可以:
  1. @echo off
  2. (for /f "tokens=1,2,3 delims=={,}" %%a in ('wmic NICCONFIG where "IPEnabled='TRUE' and DHCPEnabled='TRUE'" get Description^,IPAddress^,IPSubnet^,DefaultIPGateway^,DNSServerSearchOrder^,MacAddress /value^|findstr "="') do (
  3.     if "%%a"=="Description" (
  4.         echo;网卡名称=%%~b
  5.     ) else if "%%a"=="IPAddress" (
  6.         echo;IP地址=%%~b
  7.     ) else if "%%a"=="IPSubnet" (
  8.         echo;子网掩码=%%~b
  9.     ) else if "%%a"=="DefaultIPGateway" (
  10.         echo;默认网关=%%~b
  11.     ) else if "%%a"=="DNSServerSearchOrder" (
  12.         echo;DNS1=%%~b
  13.         echo;DNS2=%%~c
  14.     ) else if "%%a"=="MACAddress" (
  15.         echo;MAC地址=%%~b
  16.     )
  17. ))>>"1.txt"
  18. pause
复制代码
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 2# Batcher

您好,大佬,感谢回复,已经测试过了,无论怎么调整get的顺序,显示的结果都是一样。以下是显示的内容:
  1. 默认网关=192.8.29.254
  2. 网卡名称=Intel(R) Dual Band Wireless-AC 8265
  3. DNS1=114.114.114.114
  4. DNS2=8.8.8.8
  5. IP地址=192.8.29.36
  6. 子网掩码=255.255.255.0
  7. MAC地址=40:74:E0:49:05:52
  8. 默认网关=192.8.29.254
  9. 网卡名称=Intel(R) Ethernet Connection (4) I219-V
  10. DNS1=114.114.114.114
  11. DNS2=8.8.8.8
  12. IP地址=192.8.29.41
  13. 子网掩码=255.255.255.0
  14. MAC地址=98:FA:9B:E2:DB:B9
复制代码

TOP

  1. @echo off
  2. for /f "tokens=1,2,3 delims=={,}" %%a in ('wmic NICCONFIG where "IPEnabled='TRUE' and DHCPEnabled='TRUE'" get Description^,MacAddress^,DefaultIPGateway^,DNSServerSearchOrder^,IPAddress^,IPSubnet /value^|findstr "="') do (
  3.                 if "%%a"=="Description" (
  4.                     set "001网卡名称=%%~b"
  5.                 ) else if "%%a"=="IPAddress" (
  6.                     set "002IP地址=%%~b"
  7.                 ) else if "%%a"=="IPSubnet" (
  8.                     set "003子网掩码=%%~b"
  9.                 ) else if "%%a"=="DefaultIPGateway" (
  10.                     set "004默认网关=%%~b"
  11.                 ) else if "%%a"=="DNSServerSearchOrder" (
  12.                     set "005DNS1=%%~b"
  13.                     set "005DNS2=%%~c"
  14.                 ) else if "%%a"=="MACAddress" (
  15.                     set "006MAC地址=%%~b"
  16.                     for /f "delims=" %%i in ('set 0') do (
  17.                         for /f "tokens=*delims=0123456" %%j in ("%%i") do echo;%%j
  18.                     )
  19.                )
  20. )
  21. pause
复制代码

TOP

本帖最后由 uranus12 于 2020-11-18 14:03 编辑

回复 4# WHY
大佬,历害啊!另外能否两张网卡之间隔一个空行呢?谢谢
  1. 网卡名称=Intel(R) Dual Band Wireless-AC 8265
  2. IP地址=192.8.29.36
  3. 子网掩码=255.255.255.0
  4. 默认网关=192.8.29.254
  5. DNS1=114.114.114.114
  6. DNS2=8.8.8.8
  7. MAC地址=40:74:E0:49:05:52
  8. 网卡名称=Intel(R) Ethernet Connection (4) I219-V
  9. IP地址=192.8.29.41
  10. 子网掩码=255.255.255.0
  11. 默认网关=192.8.29.254
  12. DNS1=114.114.114.114
  13. DNS2=8.8.8.8
  14. MAC地址=98:FA:9B:E2:DB:B9
复制代码

TOP

回复 5# uranus12


4楼第18行下面增加一行试试:
  1. echo,
复制代码
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 6# Batcher


   感谢老大,现在完美搞定了,谢谢!!!

TOP

返回列表