[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 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万行的时候,就不行了。请问是不是没有定义长型的原因?

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

TOP

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

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

TOP

本帖最后由 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
复制代码

TOP

返回列表