先看代码- @echo off
- setlocal enabledelayedexpansion
- cd /d %~dp0
- echo.>ip_output.txt
- for /f "tokens=1-3" %%i in (ip_tmpok.txt) do (
- set tp=%%j
- if !tp:~0,3!==NA_ (
- set t=!tp:NA_=!
- set err=1 ) else (
- set err=0
- )
- (echo %%i %%k gws !t! !err! 0)>>ip_output.txt
- )
- pause
复制代码 ip_tmpok.txt文本片段- 77.234.90.140 12712 *.googlevideo.com gvs 1.0
- 150.100.16.94 12821 *.googlevideo.com
- 109.245.221.47 13253 *.googlevideo.com
- 61.238.239.209 NA_183 *.googlevideo.com gvs 1.0
- 106.103.1.156 NA_239 *.googlevideo.com gvs 1.0
- 172.217.26.155 NA_239 *.google.com gws
- 172.217.26.138 NA_246 *.googleapis.com gws
复制代码 问题点:
代码运行时,直接一闪而过,没有输出具体内容。
去掉if 语句,批处理能输出内容。
因此怀疑是 if 中的括号的问题。但对 if 中的括号用 ^ 进行转义也没效果(对'(' 和 ')' 分别转义,各种组合都试了下,如只转义一个')',转义全部')'等,但都不行。)
这个代码怎么改?
还有,这种嵌套括号,是不是都是靠转义来处理的? |