Board logo

标题: [文本处理] 【已解决】BAT:如何批量删除txt文本内数据间的空格,并添加固定字符 [打印本页]

作者: 思想之翼    时间: 2014-12-31 11:02     标题: 【已解决】BAT:如何批量删除txt文本内数据间的空格,并添加固定字符

本帖最后由 思想之翼 于 2015-1-3 22:04 编辑

D:/数据/内有多个txt文本,数据格式如下:
1 4 6 7 8 9
1 2 3 4 6 9
0 1 2 3 5 7
0 4 5 7 8 9
0 1 3 4 5 7
0 3 5 7 8 9
1 3 6 7 8 9
3 4 6 7 8 9
2 4 6 7 8 9
1 4 6 7 8 9
欲批量删除多个txt文本内数据间的空格,并添加固定字符=1-3,处理后数据格式如下:
146789=1-3
123469=1-3
012357=1-3
045789=1-3
013457=1-3
035789=1-3
136789=1-3
346789=1-3
246789=1-3
146789=1-3
这样的代码如何写?恳望得到帮助。
作者: terse    时间: 2014-12-31 11:37

运行前先备份
  1. @echo off&setlocal enabledelayedexpansion
  2. pushd "D:/数据/"
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     (for /f "usebackq delims=" %%j in ("%%i") do (
  5.         set "str=%%j"
  6.         echo;!str: =!=1-3
  7.     ))>"%temp%\$"
  8.     move "%temp%\$" "%%i" >nul
  9. )
  10. pause
复制代码

作者: 慕夜蓝化    时间: 2014-12-31 12:50

本帖最后由 慕夜蓝化 于 2014-12-31 12:53 编辑
  1. @echo off
  2. for /r d:\数据\ %%i in (*txt) do (
  3.     for /f "usebackq delims=" %%b in ("%%~fi") do (
  4.         call :a "%%b"
  5.         )
  6.     move /y $β "%%~fi" >nul
  7. )
  8. pause&exit
  9. :a
  10. (for %%a in (%~1) do (
  11.     set/p=%%a<nul
  12. )
  13. echo,=1-3)>>$β
  14. goto :eof
复制代码
若d:\数据\下含有子目录,那么子目录中的文件也会更改
如果不想更改,请将for /r那句 ,替换为
  1. for /f "delims=" %%i in ('dir /b/aa d:\数据\*txt') do (
复制代码

作者: 思想之翼    时间: 2014-12-31 17:58

学习。谢谢!




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