|
|
发表于 2021-7-18 12:57:04
|
显示全部楼层
本帖最后由 yakeyun 于 2021-7-18 16:19 编辑
可以先判断,如果所取值=有小票,就取第5列并输出,否则输出第四列。
大致思路如下,但是%%b输出不对,麻烦大佬看下是哪里出了问题。
@echo off
setlocal EnableDelayedExpansion
set "pj = 有小票"
(for /f "tokens=4,5" %%a in (a.txt) do (
if %%a == pj (
echo,%%b >> b.txt
) else (
echo,%%a >> b.txt
)
)
)
exit
用pause截获方法,终于找到原因。通过修改找到了BUG
截取结果:
我是非小票输出行
518
我是非小票输出行
1080
我是非小票输出行
有小票
我是非小票输出行
220
我是非小票输出行
308
我是非小票输出行
218
发现是没有判断,所以通过代码测试,最终代码如下:
@echo off
setlocal EnableDelayedExpansion
(for /f "tokens=4,5" %%a in ('type "a.txt"') do (
if %%a == 有小票 (
echo 我是小票输出行 >> b.txt
echo,%%b >> b.txt
) else (
echo 我是非小票输出行 >> b.txt
echo,%%a >> b.txt
)
)
)
exit
再次测试结果正常:
我是非小票输出行
518
我是非小票输出行
1080
我是小票输出行
270
我是非小票输出行
220
我是非小票输出行
308
我是非小票输出行
218 |
|