Board logo

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

作者: uranus12    时间: 2020-11-16 16:20     标题: 【已解决】批处理for /f do (if)怎么样才可以按if语句的执行顺序显示?

怎么样才可以按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
复制代码

作者: Batcher    时间: 2020-11-16 22:23

回复 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
复制代码

作者: uranus12    时间: 2020-11-16 22:30

回复 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
复制代码

作者: WHY    时间: 2020-11-17 20:54

  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
复制代码

作者: uranus12    时间: 2020-11-18 13:59

本帖最后由 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
复制代码

作者: Batcher    时间: 2020-11-18 14:22

回复 5# uranus12


4楼第18行下面增加一行试试:
  1. echo,
复制代码

作者: uranus12    时间: 2020-11-18 14:33

回复 6# Batcher


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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2