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

[文本处理] txt文件内容列转行(同列内容合并成一行)

大约有100个txt文件要转置一下,就是将每个文件里的列变成行,行变成列(示例见3楼)怎么批处理方便一点?求代码
上传3个示例文件

回复 5# CrLf


    版主,用这个代码处理文档为什么速度会越来越慢?好几个小时只处理了几天个,到后来处理每个文档所花时间越来越多

TOP

用excel的复制粘贴即可实现转置。
安全可靠+快速。
自动的话,宏,excel插件,vbs,powershell都可以。
我记得前几天坛子里有个家伙说精通vba,问问他。。。
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

如果文件大的话,这样更快:
  1. @echo off
  2. rd /s /q 测试&md 测试
  3. for /l %%a in (1 1 5) do call :getY %%a
  4. pause&exit/b
  5. :getY
  6. for %%a in (*.txt) do (
  7. for /f "tokens=%1" %%b in (%%~sa) do set /p"=%%b "
  8. echo;
  9. )<nul >>测试\%%a
复制代码

TOP

本帖最后由 CrLf 于 2014-5-8 17:32 编辑
  1. @echo off
  2. set x=0
  3. rd /s /q 测试&md 测试
  4. for %%a in (*.txt) do (
  5. setlocal enabledelayedexpansion
  6. (for /f "delims=" %%b in (%%~sa) do (
  7. set /a y=0,x+=1
  8. for %%c in (%%b) do (
  9. set /a y+=1
  10. set "_!x!_!y!=%%c"
  11. )
  12. )
  13. set /a x'=x-1
  14. for /l %%b in (1 1 !y!) do (
  15. for /l %%c in (1 1 !x'!) do (
  16. set /p"=!_%%c_%%b! "
  17. )
  18. for %%c in (!x!) do echo;!_%%c_%%b!
  19. ))<nul >测试\%%a
  20. endlocal
  21. )
  22. pause
复制代码

TOP

回复 2# CrLf

坛子里搜了一下,有位仁兄写了这个批处理
http://www.bathome.net/thread-10273-1-1.html
我运行了一下,中间两列数据转置后就丢失了一大半

TOP

回复 2# CrLf
转置就是 ,比如  1  2   3
                        4   5   6
                        7   8    9     
转成            1  4   7
                   2  5   8
                  3   6   9

TOP

请问楼主什么叫转置...不说清规则怎么帮你呢?

TOP

返回列表