Board logo

标题: [文本处理] [已解决]如何删除txt文本中第7列数字后面的两个0(指定列内容中的最后两个字符) [打印本页]

作者: 空-空    时间: 2015-7-15 17:03     标题: [已解决]如何删除txt文本中第7列数字后面的两个0(指定列内容中的最后两个字符)

2015/07/07 1000 17.43 17.44 17.41 17.41 1064700 18551960.00
2015/07/07 1001 17.43 17.46 17.40 17.46 1336800 23312896.00
2015/07/07 1002 17.45 17.46 17.41 17.41 1071600 18692142.00
2015/07/07 1003 17.44 17.48 17.43 17.48 1227300 21430124.00
2015/07/07 1004 17.45 17.49 17.41 17.41 1013000 17672410.00
2015/07/07 1005 17.42 17.44 17.40 17.40 1275300 22206702.00
2015/07/07 1013 17.48 17.48 17.42 17.46 1416400 24738636.00
2015/07/07 1014 17.46 17.46 17.42 17.44 775400 13523520.00
2015/07/07 1015 17.42 17.44 17.41 17.42 884500 15409006.00
2015/07/07 1016 17.42 17.43 17.40 17.43 1096600 19101864.00
2015/07/07 1017 17.42 17.44 17.38 17.41 951100 16561428.00
2015/07/07 1018 17.41 17.42 17.40 17.40 610700 10630553.00
2015/07/07 1019 17.40 17.42 17.37 17.38 959800 16697726.00
2015/07/07 1020 17.39 17.39 17.36 17.36 736100 12785192.00
数据





--------------------------------------------------------------------------------------------------------------------
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p "目录=文件夹名称:"
  4. for /f "delims=" %%n in ('dir /s /b "%cd%\%目录%\*.txt"') do (
  5. ren "%%n" "%%~nxn_"
  6. for /f "delims=数据 tokens=1" %%i in ( 'type "%%n_"' ) do (
  7. set s=%%i
  8. echo !s:~,13!:!s:~13!>>%%n))
  9. Del /q /s /f "%cd%\%目录%\*_"
  10. PAUSE
复制代码
现在bat代码 在第13个字符的位置加“:”冒号并删除文本中底部“数据”字符。

但删除第7列数字后面两个0不知道要怎么写了,请高手们帮帮忙在我原来代码基础上修改一下!谢谢!
作者: pcl_test    时间: 2015-7-15 18:51

覆盖源文件,注意备份
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p "目录=文件夹名称:"
  3. for /f "delims=" %%a in ('dir /s /b "%cd%\%目录%\*.txt"') do (
  4. (for /f "tokens=1-7*" %%b in ('type "%%a"') do (
  5. set s1=%%c
  6. set s2=%%h
  7. if "!s2:~-2!" equ "00" (set "s2=!s2:~,-2!")
  8. echo;%%b !s1:~,2!:!s1:~-2,2! %%d %%e %%f %%g !s2! %%i
  9. ))>"%%~dpa$"
  10. move "%%~dpa$" "%%a"
  11. )
  12. pause
复制代码

作者: 空-空    时间: 2015-7-15 19:58

回复 2# pcl_test
谢谢!

文本底部的文字没去掉,还增加了“~,2s1:~-2,2s2 ”字符,这是什么原因呢?
作者: pcl_test    时间: 2015-7-15 20:11

回复 3# 空-空

你文档最后一行都是“数据”两字?还是有些有有些没有?最后一行都有哪些情况,要说起清楚
作者: 空-空    时间: 2015-7-15 20:35

回复 4# pcl_test


    最后一行全部文档中都是“数据”,都有的
作者: pcl_test    时间: 2015-7-15 20:36

回复 5# 空-空
改一行
if "!s2!" neq "" (echo;%%b !s1:~,2!:!s1:~-2,2! %%d %%e %%f %%g !s2! %%i)
作者: 空-空    时间: 2015-7-15 20:46

回复 6# pcl_test

试了一下,改了一行文本底部的文字没去掉
作者: pcl_test    时间: 2015-7-15 20:51

回复 7# 空-空

测试没问题
作者: 空-空    时间: 2015-7-15 21:20

回复  空-空

测试没问题
pcl_test 发表于 2015-7-15 20:51



    非常感谢,试了,没问题,是我改错了
作者: CrLf    时间: 2015-7-26 00:44

用 gawk 来一个
  1. @gawk "{gsub(\"..$\",\"\",$7)};1" a.txt >b.txt
复制代码





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