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

[文本处理] 批处理为何只能生成31个文件?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a n=0
  4. :loop
  5. set /a n+=1
  6. FOR /F "tokens=%n% delims=/" %%i in (gj.txt,58.txt) do @echo %%i >> cp%n%.txt
  7. goto :loop
复制代码
以上代码从gj.txt,58.txt 二个文本中各抽取一行内容组成新的文本,gj.txt,58.txt中的内容用“/”分隔

目前生成的cp**文件只能从cp1.txt到cp31.txt,只能生成31个文档,

gj.txt内容为
  1. qq情侣网名_/qq个性网名_/qq网名大全_/qq伤感网名_/qq网名繁体字_/2011qq网名_/腾讯qq网名_/腾讯网名_/qq非主流网名_/qq英文网名_/qq个性情侣网名_/qq非主流情侣网名_/qq情侣网名大全_/2011qq情侣网名_/qq英文情侣网名_/qq飞车情侣网名_/腾讯qq情侣网名_/qq空间情侣网名_/qq炫舞情侣网名_/qq伤感情侣网名_/2011qq个性网名_/qq非主流个性网名_/qq个性伤感网名_/qq女生个性网名_/qq个性英文网名_/腾讯qq个性网名_/qq性格网名_/qq男生个性网名_/qq个性网名繁体字_/2011qq网名大全_/qq网名繁体字大全_/qq网名大全男_/qq长网名大全_/qq英文网名大全_/腾讯qq网名大全_/qq男生网名大全_/qq女生网名大全_/2011qq情侣网名大全_/qq男生伤感网名_/qq非主流伤感网名_/2011qq伤感网名_/qq女生伤感网名_/伤感的qq网名_/qq伤感网名男_/qq网名伤感繁体字_/qq伤感长网名_/qq情侣网名繁体字_/qq网名繁体字转换器_/2011qq网名繁体字_/qq网名繁体字女生_/qq非主流网名繁体字_/qq男生网名繁体字_/qq可爱网名繁体字_/2011qq长网名_/2011腾讯网名_/2011qq女生网名_/2011qq超长网名_/腾讯qq英文网名_/腾讯qq2011网名_/腾讯qq可爱网名_/腾讯qq女网名_/腾讯qq搞笑网名_/qq网名_/qq非主流女生网名_/qq非主流男生网名_/2011qq非主流网名_/qq非主流英文网名_/qq非主流长网名_/非主流qq网名大全_/qq空间网名_/2011qq个性情侣网名_/qq个性情侣网名一对_/qq炫舞个性情侣网名_/qq个性情侣长网名_/qq个性情侣英文网名_/qq飞车个性情侣网名_/qq最新个性情侣网名_/qq个性伤感情侣网名_/qq个性情侣网名大全_/个性的qq情侣网名_/qq非主流情侣长网名_/非主流情侣网名_/非主流个性情侣网名_/2011非主流情侣网名_/非主流伤感情侣网名_/非主流情侣网名大全_/最新非主流情侣网名_/非主流情侣网名长的_/非主流超长情侣网名_/非主流幸福情侣网名_/qq飞车情侣网名大全_/qq情侣长网名大全_/qq英文情侣网名大全_/qq炫舞情侣网名大全_/qq空间情侣网名大全_/qq超长情侣网名大全_/qq12字情侣网名大全_/情侣网名大全_/2011qq超长情侣网名_/2011qq幸福情侣网名_/2011qq最新情侣网名_/2011qq情侣长网名_/
复制代码
58.txt内容为
  1. ︸°莫名的想妳︸°无意的念你|/▃_欲念▃_执念|/毒情畸情|/′为你饮剧毒′为你毁容颜|/情绪信念|/♦彼时彼刻的爱╮♦此时此刻的爱╮|/舍不得把你抓紧舍不得把你放开|/用你的时候ゝ千般温柔弃你的时候ゝ毫不留情|/我不要思念你我要紧挨着你|/一种相思゛两处闲愁゛|/两情若是久长时゛又岂在朝朝暮暮゛|/以身相许易以生相许难|/因为你是你因此我是我|/∞浮华霸黎つ∞尘世棟京つ|/゛成成尛京京的夫゛京京尛成成的妻|/╰硪是你的梁山伯╰硪是你的祝英台|/女人大声点男人快一点|/╰呐个男人的谎言╰呐个女人的谎言|/■硪爱你爱的无可救药□硪爱你爱的死心塌地|/╰最疼爱的人爱硪多少╰疼愛硪的人沒有多少|/失声╰呐喊触动每个音符闭眼╰聆听世界每个角度|/╰狠黄狠暴力╰狠纯狠暧昧|/Sou1相依ゞSou1相偎ゞ|/个性网的签名只是为了纪念你|/妳會莣記莪袔莪莋丕菿|/╭尛帥"╭爱帥帥"|/1加1等于2|/◇安分小男人"◇安分小女人"|/那誰我不在爱你那莪筭イ+厸|/最好的幸福是把一个人记住最累的辛苦是想你想到哭|/#我爱她.不容质疑.#我爱他.无须怀疑.|/何必强颜欢笑っ何必最做多情っ|/╰无可奈何花落去╰似曾相识燕归来m1n3珍惜你#m1n3珍重你#|/向往平淡√不甘平凡√|/谢谢你掌心温暖到我心原谅你看你一脸孩子气|/爱情好像流沙把我掩埋ひ爱情好像流沙把我掩埋ひ|/男人不坏女人不爱女人不爱男人不坏|/心没有安置ㄟ只好在流浪ㄟ|/我留在原点ㄲ始终很留恋ㄲ|/杂/老头杂/老太|/比起脑海离心脏更近的人比起相聚离分别更近的人|/╰﹀小黄牛╰﹀小狗狗|/我爱你.*e你爱我.*e|/永远葽快樂記得葽快樂|/悲痛″starˇ幸福″overˇ|/牽佐手っ吥離牽佑手っ吥棄|/左手边牵你右手边牵你|/溺水三千我只取一瓢饮|/派大星离不开海绵宝宝海綿寶寶離不開派大星|/许你一世柔情给你一生宠溺|/你这个优雅的废物※你这个冷漠的怪兽※|/始终如一相伴于你苦痛悲始终如一相随于你喜乐美|/曲终人散▍谁去谁留-繁华落尽▍谁痛谁伤-|/﹌花花世界-﹌何必当真-|/海绵宝宝为什么哭?因为派大星背叛了他|/一个如此霸道的男人い一个极端高傲的女人い|/青花瓷-兰亭序-|/曾经╮现在╮|/注定陪你到最后注定跟你到最后|/我是小人物你是大人物|/别拿山炮不当人er别拿二逼不吊事er|/涐爱你真真切切涐恋你刻骨铭心|/下雨了╮说抱歉天晴了╮说再见|/开心关心|/宠辱不惊坐看庭前花开花落╰我带你私奔╰带我去私奔|/愛愛愛愛愛╮貓花花花花花╮貓|/〆老男人〆老女人|/你是我内心的一首歌ゞ我是你内心的一首歌ゞ|/你腐蚀了我的全部你瓦解了我的所有|/喂等我嗯等你|/╰心疼你的心疼╰’疼爱你的疼爱|/丧心狂失心疯|/闻得到的气息触不到的温柔|/两情若是久长时#又岂在朝朝暮暮#|/纳爱斯▍清新有他°纳爱斯▍清新有她°|/◆◇:誰都吥媞誰の誰◇◆:呮侑莪媞莪の莪|/那過去の迴憶迴憶の那過去|/我离君天涯#君隔我海角#|/情人总分分和和我们却越爱越深|/
复制代码
谢谢大家

[ 本帖最后由 danny123 于 2011-2-12 21:57 编辑 ]

for循环中tokens(列)的极限数是31
---学无止境---

TOP

原帖由 broly 于 2011-2-12 21:00 发表
for循环中tokens(列)的极限数是31


请问有没有什么方法修改,不用tokens改用别的行不行?麻烦了

TOP

回复 3楼 的帖子

这样吗?
  1. @echo off
  2. for %%a in (gj.txt 58.txt) do (
  3.   set n=0
  4.   for /f "tokens=1,* delims=/" %%i in (%%a) do call :sub %%i %%j
  5. )
  6. pause
  7. exit
  8. :sub
  9. set /a n+=1
  10. >>cp%n%.txt echo %1
  11. if not "%2"=="" (
  12.   for /f "tokens=1,* delims=/" %%i in ("%2") do (call :sub %%i %%j)
  13. )
复制代码
---学无止境---

TOP

本帖最后由 pcl_test 于 2016-11-18 17:18 编辑

回复 4# broly
用您这个运行了一下,好像不行,没有文件生成,您再帮忙看看?

TOP

  1. :换分隔符后用一般FOR来处理
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. FOR /F "delims=" %%i in (gj.txt,58.txt) do (
  5.  set "L=%%i"
  6.  set NL=!L:/=;!
  7.  FOR %%j in (!NL!) do (
  8.   set/a n+=1
  9.   >cp!n!.txt echo=%%j
  10.  )
  11. )
复制代码

TOP

本帖最后由 pcl_test 于 2016-11-18 17:18 编辑

回复 6# cutebe
运行了一下,您这个gj.txt和58.txt里面的内容没有串在一起,是分开的,能帮忙看看吗

[ 本帖最后由 danny123 于 2011-2-12 22:06 编辑 ]

TOP

回复 7楼 的帖子

测试没有问题。
你的文本命名之类的有没有弄错?
---学无止境---

TOP

好像是58.txt里面的各种符号造成的,全中文就没问题

TOP

回复 8楼 的帖子

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%f in (gj.txt 58.txt) do (
  3.    set n=
  4.    for /f "delims=" %%a in (%%f) do (
  5.      set tmp=%%a&set tmp=!tmp:/=" "!
  6.      for %%i in ("!tmp!") do set /a "n+=1"&set .%%f!n!=%%~i
  7.    )
  8. )
  9. for /l %%a in (1 1 %n%) do (
  10.    echo !.gj.txt%%a!
  11.    echo !.58.txt%%a!
  12. )>>%%a.txt
  13. pause
  14. exit
复制代码

[ 本帖最后由 zm900612 于 2011-2-12 22:15 编辑 ]

TOP

原帖由 zm900612 于 2011-2-12 22:08 发表
@echo off&setlocal enabledelayedexpansion
for %%f in (gj.txt 58.txt) do (
   set n=
   for /f "delims=" %%a in (%%f) do (
     set tmp=%%a&set tmp=!tmp:/=" "!
     for %%i in ("!tmp!") do set /a  ...


谢谢,您的代码运行后文字左右多了分号",生成没有问题,我真实的文档里面是6000多条,就无法生成了,谢谢这位大哥

TOP

修改了一下6楼的代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (gj.txt 58.txt) do (
  4. set n=0
  5. FOR /F "delims=" %%i in (%%a) do (
  6.  set "L=%%i"
  7.  set NL=!L:/=;!
  8.  FOR %%j in (!NL!) do (
  9.   set/a n+=1
  10.   >>cp!n!.txt echo=%%j
  11.  )
  12. )
  13. )
复制代码
---学无止境---

TOP

  1. :不处理一些特殊字符
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. FOR /F "delims=" %%i in (gj.txt,58.txt) do (
  5.  set "L=%%i"
  6.  set NL=!L:/=;!
  7.  set n=
  8.  FOR %%j in (!NL!) do (
  9.   set/a n+=1
  10.   >>cp!n!.txt echo=%%j
  11.  )
  12. )
  13. pause
复制代码

TOP

10楼代码已修正...

TOP

请求帮忙修改一下代码,还是tokens显示31条的问题

昨天在论坛求助,大家都踊跃帮忙,十分感谢,具体见

批处理为何只能生成31个文件?

但存在一个问题,因为我的文档内容太多,每个都在100K左右,运行昨天各位提供的代码就无法生成文件了,现在这里有一个代码,每生成完一个文件后需要按任意键才可以继续生成,但仍然有 tokens 31 次的限制,请求大家再帮我参考一下,
  1. @echo off
  2. set /a n=0
  3. :loop
  4. set /a n+=1
  5. FOR /F "tokens=%n% delims=/" %%i in (gj.txt,58.txt) do @echo %%i >> cp%n%.txt
  6. pause
  7. goto :loop
复制代码
因为附件有100多K,所以传在网盘,请大家有空帮忙看看

gj.txt  地址  http://u.115.com/file/f752225630
58.txt  地址  http://u.115.com/file/f7fe67bbf6

谢谢

TOP

返回列表