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

原帖由 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

回复 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

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

TOP

回复 7楼 的帖子

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

TOP

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

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

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

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 编辑

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

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

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


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

TOP

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

TOP

返回列表