Board logo

标题: [文本处理] BAT批处理合并csv文本行数100万行时,无法运行? [打印本页]

作者: qingwusigui    时间: 2014-5-13 22:33     标题: BAT批处理合并csv文本行数100万行时,无法运行?

  1. @echo off
  2. del total.csv
  3. (for %%i in (*.csv) do (
  4. for /f "skip=8" %%j in ('type "%%i"') do echo %%j))>total.txt
  5. ::ren total.txt total.csv
  6. @echo  运行完毕...已合并至total.csv
  7. pause
复制代码
CSV的行数较少的时候,没有问题,但当行数达到100万行的时候,就不行了。请问是不是没有定义长型的原因?
作者: CrLf    时间: 2014-5-13 23:15

行数多时,避免使用内部命令
  1. @echo off
  2. (for %%i in (*.csv) do more +8 %%i)>total.txt
  3. ren total.txt total.csv
  4. pause
复制代码

作者: terse    时间: 2014-5-13 23:17

本帖最后由 terse 于 2014-5-13 23:41 编辑

行数有限制吧 另也可试下
  1. 原来是有条件的 作废
复制代码

作者: CrLf    时间: 2014-5-14 00:10

本帖最后由 CrLf 于 2014-5-14 06:48 编辑

卧槽,忘了 more 只支持 65535 行以下的文本,好吧那么这样吧:
  1. @echo off
  2. (
  3.    for %%a in (*.csv) do (
  4.       for /l %%b in (1 1 8) do set /p=
  5.       findstr .
  6.    )<%%a
  7. )>total.txt
  8. ren total.txt total.csv
  9. pause
复制代码
  1. @echo off
  2. (for %%a in (*.csv) do sed "1,8d" "%%a")>total.txt
  3. ren total.txt total.csv
  4. pause
复制代码





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