[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
100KB=102400B
如果都在同一行的话,这个是不是太大了...变量的极限容量才8192,所以我弃权...

TOP

有没有方法改成不受限制,批处理一点都不懂,不好意思诸位

TOP

不知道for /f "tokens=1*"...语句的参数有没有限制极限长度,如果没限制的话估计用临时文件可以做到,不过效率就不用指望了
还有一个思路是fsutil+for切割文件,但是无论效率还是通用性上都差强人意
不用第三方命令的话,别的思路暂时没有了...等待高人出现

[ 本帖最后由 zm900612 于 2011-2-13 17:17 编辑 ]

TOP

使用fr或sed替换/为换行
然后用for 处理
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

是阿,使用用第三方SED 4.14吧(注意备份你的两个TXT文本)
http://bbs.bathome.net/thread-1114-1-1.html
  1. @echo off
  2. cd/d %~dp0
  3. (echo sed -i "s/\//\n/g" gj.txt
  4. echo sed -i "s/\//\n/g" 58.txt
  5. echo exit)>N.BAT
  6. start N.BAT
  7. echo 按任意键开始生成文件
  8. pause>nul
  9. setlocal enabledelayedexpansion
  10. for %%a in (gj.txt;58.txt)do (
  11.  set n=
  12.  FOR /F "delims=" %%i in (%%a) do (
  13.   set/a n+=1
  14.   >>cp!n!.txt echo=%%i
  15.  )
  16. )
  17. del N.BAT
  18. pause
复制代码

[ 本帖最后由 cutebe 于 2011-2-13 19:06 编辑 ]

TOP

回复 15楼 的帖子

过期了,无法从网盘下载。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. gawk -F/ "NR==FNR{for(i=1;i<=NF;i++)a[i]=$i}NR>FNR{for(i=1;i<=NF;i++)print $i\"\n\"a[i] >\"cp\"i\".txt\"}" 58.txt gj.txt
复制代码

TOP

原帖由 Batcher 于 2011-2-13 19:18 发表
过期了,无法从网盘下载。


谢谢,已经续了

TOP

原帖由 cutebe 于 2011-2-13 19:05 发表
是阿,使用用第三方SED 4.14吧(注意备份你的两个TXT文本)
http://bbs.bathome.net/thread-1114-1-1.html@echo off
cd/d %~dp0
(echo sed -i "s/\//\n/g" gj.txt
echo sed -i "s/\//\n/g" 58.txt
echo exit)>N ...


测试了一下,好像不行,谢谢您

TOP

原帖由 danny123 于 2011-2-13 23:42 发表


谢谢,已经续了


还是过期。。。
用VBS可以不。。。
---学无止境---

TOP

原帖由 broly 于 2011-2-13 23:49 发表


还是过期。。。
用VBS可以不。。。

  1. '//保存此文件为 untitled.vbs
  2. '//跟那两个文本放在一起,然后运行。。。
  3. Dim fso,f,ary1,ary2,intMax,intMin,i,strText
  4. Set fso=CreateObject("Scripting.FileSystemObject")
  5. Set f=fso.OpenTextFile(fso.GetFolder(".") & "\gj.txt",1)
  6. ary1=Split(f.ReadAll,"/",-1) : f.Close
  7. Set f=fso.OpenTextFile(fso.GetFolder(".") & "\58.txt",1)
  8. ary2=Split(f.ReadAll,"/",-1) : f.Close
  9. If UBound(ary1) > UBound(ary2) Then
  10.   intMax=UBound(ary1)
  11.   intMin=UBound(ary2)
  12. Else
  13.   intMax=UBound(ary2)
  14.   intMin=UBound(ary1)
  15. End If
  16. For i=1 To intMin
  17.   strText=ary1(i) & vbCrLf & ary2(i)
  18.   Set f=fso.CreateTextFile("cp"&i&".txt",True)
  19.   f.Write strText
  20.   f.Close
  21. Next
  22. For i=intMin To intMax
  23.   If UBound(ary1)=intMax Then
  24.     strText=ary1(i)
  25.   Else
  26.     strText=ary2(i)
  27.   End If
  28.   Set f=fso.CreateTextFile("cp"&i&".txt",True)
  29.   f.Write strText
  30.   f.Close
  31. Next
  32. MsgBox "完成!"
  33. Set fso=Nothing:Set f=Nothing
复制代码
---学无止境---

TOP

返回列表