标题: [文本处理] 【已解决】批处理for /f do (if)怎么样才可以按if语句的执行顺序显示? [打印本页]
作者: uranus12 时间: 2020-11-16 16:20 标题: 【已解决】批处理for /f do (if)怎么样才可以按if语句的执行顺序显示?
怎么样才可以按if语句的执行顺序显示?还有去掉空行啊?- @echo off
- set apath="E:\Mydata\%Username%\Desktop\ip地址.txt"
- 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 (
- if "%%a"=="Description" (echo;网卡名称=%%~b>>1.txt
- ) else if "%%a"=="IPAddress" (echo;IP地址=%%~b>>1.txt
- ) else if "%%a"=="IPSubnet" (echo;子网掩码=%%~b>>1.txt
- ) else if "%%a"=="DefaultIPGateway" (echo;默认网关=%%~b >>1.txt
- ) else if "%%a"=="DNSServerSearchOrder" (echo;DNS1=%%~b>>1.txt&echo;DNS2=%%~c>>1.txt
- ) else if "%%a"=="MACAddress" (echo;MAC地址=%%~b>>1.txt)
- )
- pause
复制代码
作者: Batcher 时间: 2020-11-16 22:23
回复 1# uranus12
先解决第一个问题,把 get 后面的字段顺序调整一下跟 if 的顺序保持一致是否可以:- @echo off
- (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 (
- if "%%a"=="Description" (
- echo;网卡名称=%%~b
- ) else if "%%a"=="IPAddress" (
- echo;IP地址=%%~b
- ) else if "%%a"=="IPSubnet" (
- echo;子网掩码=%%~b
- ) else if "%%a"=="DefaultIPGateway" (
- echo;默认网关=%%~b
- ) else if "%%a"=="DNSServerSearchOrder" (
- echo;DNS1=%%~b
- echo;DNS2=%%~c
- ) else if "%%a"=="MACAddress" (
- echo;MAC地址=%%~b
- )
- ))>>"1.txt"
- pause
复制代码
作者: uranus12 时间: 2020-11-16 22:30
回复 2# Batcher
您好,大佬,感谢回复,已经测试过了,无论怎么调整get的顺序,显示的结果都是一样。以下是显示的内容:- 默认网关=192.8.29.254
- 网卡名称=Intel(R) Dual Band Wireless-AC 8265
-
- DNS1=114.114.114.114
- DNS2=8.8.8.8
- IP地址=192.8.29.36
- 子网掩码=255.255.255.0
- MAC地址=40:74:E0:49:05:52
-
- 默认网关=192.8.29.254
- 网卡名称=Intel(R) Ethernet Connection (4) I219-V
-
- DNS1=114.114.114.114
- DNS2=8.8.8.8
- IP地址=192.8.29.41
- 子网掩码=255.255.255.0
- MAC地址=98:FA:9B:E2:DB:B9
复制代码
作者: WHY 时间: 2020-11-17 20:54
- @echo off
- 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 (
- if "%%a"=="Description" (
- set "001网卡名称=%%~b"
- ) else if "%%a"=="IPAddress" (
- set "002IP地址=%%~b"
- ) else if "%%a"=="IPSubnet" (
- set "003子网掩码=%%~b"
- ) else if "%%a"=="DefaultIPGateway" (
- set "004默认网关=%%~b"
- ) else if "%%a"=="DNSServerSearchOrder" (
- set "005DNS1=%%~b"
- set "005DNS2=%%~c"
- ) else if "%%a"=="MACAddress" (
- set "006MAC地址=%%~b"
- for /f "delims=" %%i in ('set 0') do (
- for /f "tokens=*delims=0123456" %%j in ("%%i") do echo;%%j
- )
- )
- )
- pause
复制代码
作者: uranus12 时间: 2020-11-18 13:59
本帖最后由 uranus12 于 2020-11-18 14:03 编辑
回复 4# WHY
大佬,历害啊!另外能否两张网卡之间隔一个空行呢?谢谢- 网卡名称=Intel(R) Dual Band Wireless-AC 8265
- IP地址=192.8.29.36
- 子网掩码=255.255.255.0
- 默认网关=192.8.29.254
- DNS1=114.114.114.114
- DNS2=8.8.8.8
- MAC地址=40:74:E0:49:05:52
- 网卡名称=Intel(R) Ethernet Connection (4) I219-V
- IP地址=192.8.29.41
- 子网掩码=255.255.255.0
- 默认网关=192.8.29.254
- DNS1=114.114.114.114
- DNS2=8.8.8.8
- MAC地址=98:FA:9B:E2:DB:B9
复制代码
作者: Batcher 时间: 2020-11-18 14:22
回复 5# uranus12
4楼第18行下面增加一行试试:复制代码
作者: uranus12 时间: 2020-11-18 14:33
回复 6# Batcher
感谢老大,现在完美搞定了,谢谢!!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |