[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 思想之翼 于 2013-1-23 10:51 编辑

回复 15# terse

谢谢关注!试验一下,发现数据合并结果不对,整体错位了1行。
结果为
0000006 2 1 1
0000007 5 5 2
0000008 1 1 2
0000009 5 2 2
应为
0000005 2 1 1
0000006 5 5 2
0000007 1 1 2
0000008 5 2 2
另,合并后的结果能否新建一个文件夹?

TOP

回复 16# 思想之翼
已修改 再试

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. md New 2>nul
  3. set step=1
  4. for /f "tokens=1,2" %%a in (a.txt) do (
  5.   set /a n+=1,m=n-step,k=m-step
  6.   set "_!n!=%%b"
  7.   if defined _!k! (
  8.     for /l %%c in (0 1 62) do (
  9.       set /a Name=%%c + 101
  10.       for %%d in (!k! !m! !n!) do (
  11.         set aa=!_%%d!
  12.         set "str=!str! !aa:~%%c,1!"
  13.       )
  14.       echo,%%a !str:~1!>>"New\!Name:~1!.txt"
  15.       set "str="
  16.     )
  17.   )
  18. )
  19. pause
复制代码
更改第3行的数字即可,试试?
1

评分人数

TOP

本帖最后由 思想之翼 于 2013-2-22 21:10 编辑

回复 18# apang

谢谢!VBA代码完美解决问题。研究您的代码,想扩展运用,但是遇到了问题:
1、此代码得到的单个txt文本的数据格式是0000001 4 3 9 2,若数据格式改为0000001 4392,如何修改代码?
2、此代码处理后有01-63个txt文本,若只产生1个txt文本,合并分散在01-63个txt文本的数据,数据格式为0000001 4392 2135 3695 2587 ......9987,第一列0000001是时间序号,第二列4392是01.txt的数值,第三列2135是02.txt的数值......第64列9987是63.txt的数值,这又该如何修改代码?
恳望得到您的帮助!

TOP

0000001 4 3 9 2 为什么是5列而不是4列?假设是4列:
1.18楼第12行:set "str=!str!!aa:~%%c,1!"
   第14行:echo,%%a !str!>>"New\!Name:~1!.txt"

2.与63个txt文档放在一起
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1 1 63) do (
  3.   set /a Name=%%a+100,n=0
  4.   for /f "usebackq tokens=1*" %%b in ("!Name:~1!.txt") do (
  5.     set /a n+=1
  6.     for %%i in (!n!) do (
  7.       if %%a==1 (set "_%%i=%%b %%c") else set "_%%i=!_%%i! %%c"
  8.     )
  9.   )
  10. )
  11. (for /l %%a in (1 1 !n!) do echo,!_%%a!)>Result.txt
  12. pause
复制代码

TOP

本帖最后由 思想之翼 于 2013-2-23 14:28 编辑

回复 20# apang


    谢谢!您的代码给我很大启发。将63个文本合并的代码,是在已经产生63个文本后的情况下使用的,能否在用18楼的代码处理数据时,不分成63个文本,直接产生紧凑型的数据(即4321,非4 3 2 1),并存放在1个文本中?

TOP

返回列表