找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 34943|回复: 7

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

[复制链接]
发表于 2014-6-29 21:29:07 | 显示全部楼层 |阅读模式
本帖最后由 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
 楼主| 发表于 2014-6-29 22:29:46 | 显示全部楼层
搜索了下论坛,自己试着加了下,还是搞不定,求助老师们,感谢!
 楼主| 发表于 2014-6-30 10:47:03 | 显示全部楼层
求帮助。。。。
 楼主| 发表于 2014-6-30 12:53:19 | 显示全部楼层
请问老师们是否没法删除?我又试了下原来可以用替换来把逗号替换为空内容,如果没法直接删除的话,那么"替换"这个操作可以用批处理实现吗?感谢
 楼主| 发表于 2014-6-30 17:01:39 | 显示全部楼层
或者是新做一个BAT,把生成的txt文件里的逗号全部删除也可以啊。。。求助。。
发表于 2014-6-30 19:06:45 | 显示全部楼层
  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
复制代码

评分

参与人数 1技术 +1 收起 理由
quartz123 + 1 谢谢帮助

查看全部评分

发表于 2014-6-30 21:36:54 | 显示全部楼层
回复 4# quartz123


可以用set命令替换字符,参考:
http://bbs.bathome.net/thread-14927-1-1.html
发表于 2014-7-1 11:12:06 | 显示全部楼层
本帖最后由 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
复制代码

评分

参与人数 1技术 +1 收起 理由
quartz123 + 1 谢谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 06:35 , Processed in 0.031009 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表