[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我是win7系统,显示65391行就暂停了,末行显示-- More (20%) -- ...
不过测试文件并未超过40M,只有38.6M,莫非与此有关?

TOP

type打不开ansi编码文件???

TOP

12楼是代码错了吧,【>456.txt(】这里似乎少一个空格

TOP

  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do echo (%%a^))>456.txt
复制代码

TOP

这样猜谜很困难,能否贴出你的目录树、测试代码、结果呢?

TOP

不可能是编码问题,bat本来就是为ansi而生的...看来for也有极限啊...
有一个思路,没试验过:
  1. copy 1.txt 2.txt
  2. fsutil file setzerodata offset=0 length=20000000 1.txt
  3. fsutil file setzerodata offset=20000000 length=30000000 2.txt
复制代码
然后分别处理1.txt和2.txt,不过只有在ntfs格式的盘上才可以这样,而且也不确定fsutil能不能处理这么大的文件,毕竟这体积有点极端了...

TOP

20楼似乎在和1.txt之间漏了个空格
试试:
  1. @echo off
  2. (for /f "delims=" %%a in ('type 1.txt') do echo (%%a^))>456.txt
复制代码

TOP

我倒,不能改原文件,难道还不能复制吗?

TOP

本帖最后由 zm900612 于 2011-4-1 13:25 编辑

我是说不需要在原文件上操作,复制一个临时的出来,或者从原文件获取输入,再重定向到别的文件

TOP

当for从文件读取输入时是一行一行进行,而从命令获取输入时是等该命令运行完毕后再进行,不知道for中的命令输出是存在内存里还是临时文件,我感觉应该是内存吧...

TOP

type、more、for等命令都是一行一行获取输入、处理、再输出的,所以单独使用的时候应该不会预先把文件内容读取到内存吧,不过for+命令是特例,必须先等待命令运行完毕,才能用for进行处理,所以我猜for从命令所获取的输入因该是暂存在内存里吧,cmd所能使用的内存是有上限的,所以会出现各种诡异现象。个人感觉,没有验证

TOP

返回列表