Board logo

标题: [文本处理] 批处理BAT如何批量删除txt文件中的半角状态下的逗号?[已解决] [打印本页]

作者: quartz123    时间: 2014-6-29 21:29     标题: 批处理BAT如何批量删除txt文件中的半角状态下的逗号?[已解决]

本帖最后由 quartz123 于 2014-7-10 16:07 编辑

求助老师们,如何批量删除txt文件中的','(半角状态下的逗号),谢谢!

这是批处理,后面是生成的文件,如何在生成文件的同时,就把','号删除掉,感谢老师们!

这是批处理命令:
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set record=同期_不可用.txt
  3. for /f "delims=" %%j in (!record!) do (
  4.         set first_num=%%j
  5.         set first_num=!first_num:~0,1!
  6.         if !first_num! EQU 6 (echo SH%%j>>同期.txt) else (echo SZ%%j>>同期.txt)
  7.         )
  8. del /q "同期_不可用.txt"
  9. pause
复制代码
这是生成的文件(只是一部份):
SZ000011        35,360.00
SZ000018        -412.00
SZ000025        374.64
SZ000029        1,305.03
SZ000033        -487.14
SZ000033        -292.44
SZ000045        -804.00
SZ000050        2,141.00
SZ000059        -8,572.52
SZ000063        31,001.00
SZ000068        -1,772.38
SZ000156        12,157.00
SZ000400        18,157.57
SZ000402        75,758.00
SZ000407        359.04
SZ000426        5,634.93
SZ000428        6,260.20
SZ000511        921.09
SZ000519        12,883.00
SZ000525        16,373.99
SZ000526        93.92
SZ000526        -39.80
SZ000562        83,509.70
作者: quartz123    时间: 2014-6-29 22:29

搜索了下论坛,自己试着加了下,还是搞不定,求助老师们,感谢!
作者: quartz123    时间: 2014-6-30 10:47

求帮助。。。。
作者: quartz123    时间: 2014-6-30 12:53

请问老师们是否没法删除?我又试了下原来可以用替换来把逗号替换为空内容,如果没法直接删除的话,那么"替换"这个操作可以用批处理实现吗?感谢
作者: quartz123    时间: 2014-6-30 17:01

或者是新做一个BAT,把生成的txt文件里的逗号全部删除也可以啊。。。求助。。
作者: apang    时间: 2014-6-30 19:06

  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set record=同期_不可用.txt
  3. (for /f "delims=" %%j in (!record!) do (
  4.         set "str=%%j"
  5.         if "!str:~,1!" EQU "6" (echo SH!str:,=!) else (echo SZ!str:,=!)
  6. ))>同期.txt
  7. del /q "同期_不可用.txt"
  8. pause
复制代码

作者: Batcher    时间: 2014-6-30 21:36

回复 4# quartz123


可以用set命令替换字符,参考:
http://bbs.bathome.net/thread-14927-1-1.html
作者: hfg1977    时间: 2014-7-1 11:12

本帖最后由 hfg1977 于 2014-7-1 11:14 编辑

使用sed命令:
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set record=同期_不可用.txt
  3. for /f "delims=" %%j in (!record!) do (
  4.         set first_num=%%j
  5.         set first_num=!first_num:~0,1!
  6.         if !first_num! EQU 6 (echo SH%%j>>同期.txt) else (echo SZ%%j>>同期.txt)
  7.         )
  8. sed -i "s/,//g" 同期.txt
  9. del /q "同期_不可用.txt"
  10. pause
复制代码





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