Board logo

标题: [文本处理] 批处理如何把文本中的每一行输入到一个新文本? [打印本页]

作者: kui198677    时间: 2011-3-20 10:02     标题: 批处理如何把文本中的每一行输入到一个新文本?

如文本内容为
12sadf
458766
adf345$
把每一行输入到一个新的文本里,如果有多少行就输入到多少个文本里,文本名为所在行的行数
新的文本为
1.txt     12sadf
2.txt      458766
3.txt      adf345$
作者: wc726842270    时间: 2011-3-20 10:26

用一下退格符,呵呵,看贴子发现的
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. for /f "eol= delims=" %%i in (a.txt) do set /a n+=1&&echo=%%i >!n!.txt
  4. pause
复制代码

作者: kui198677    时间: 2011-3-20 11:27

还有一个问题,如果判断一行有几个字符呢
比如:文本里有
123456
1324
12456
如果判断这个文本里的每一行是多少个数字,如第一行为6个,第二行为4个,第三行为三个,然后判断那一行的字符最大,然后把这个数值写到一个新的文本里,这个文本的最大字符是6就输入六到新的文本里,注:文本里的行不固定
作者: CrLf    时间: 2011-3-20 11:35

是字节还是字符?判断字节只是顺手的事,字符就比较麻烦了
作者: kui198677    时间: 2011-3-20 11:42

字节
就是看一行有几个字节
如:
123456789
有9个字节
作者: kui198677    时间: 2011-3-20 11:45

我有一个文本内容如下:1.txt
内容为:
6.54823
7.35468
6.12351
2.13214
如何用批处理把这些行的数值相加再除4也就是算出它的平均值,文本不一定是四行,也就是说文本生成的行不一定相同,不管有几行,只要运行批处理就自动算出里面的平均值,非常感情
作者: CrLf    时间: 2011-3-20 11:52

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2* delims=:" %%a in ('(type 1.txt^&echo;^)^|findstr /n /o .*') do (
  3. set h=%%a
  4. set tmp=%%c
  5. if %%b gtr 0 (
  6. echo !tmp!
  7. echo %%b
  8. )>!h!.txt
  9. )
复制代码





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