标题: [文本处理] 【已解决】再问:批处理如何把数据竖排变横排? [打印本页]
作者: 思想之翼 时间: 2015-2-26 23:38 标题: 【已解决】再问:批处理如何把数据竖排变横排?
本帖最后由 思想之翼 于 2015-2-27 17:38 编辑
D:/数据/内有若干txt文本,每个文本内有多列数据,格式如下:
1 2 3...
2 3 4...
3 4 5...
4 5 6...
5 6 7...
6 7 8...
7 8 9...
8 9 10...
9 10 11...
...
欲批量将每个文本内的数据竖排变横排,即第1列变为第1排,第2列变为第2排...
上例转变为:
1 2 3 4 5 6 7 8 9...
2 3 4 5 6 7 8 9 10...
3 4 5 6 7 8 9 10 11...
这样的代码如何写?恳望得到帮助。
作者: pcl_test 时间: 2015-2-27 12:53
本帖最后由 pcl_test 于 2015-2-27 23:18 编辑
回复 1# 思想之翼 - @echo off
- setlocal enabledelayedexpansion
- cd /d "D:\数据\"
- for %%f in (*.txt) do (
- set /p str=<"%%f"
- set n=0
- for %%i in (!str!) do (
- set /a n+=1
- )
- for /l %%a in (1 1 !n!) do call :aa %%a "%%f"
- move $ "%%f"
- )
- pause & exit
- :aa
- set s=
- for /f "tokens=%1" %%b in ('type %2') do (
- set "s=!s!%%b "
- )
- >>$ echo,!s:~0,-1!
- goto :eof
复制代码
作者: xxpinqz 时间: 2015-2-27 17:21
- @echo off
- cd /d "d:\数据1\"
- for %%i in (*.txt) do (
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (%%i) do (
- set n=0
- for %%b in (%%a) do (
- set/a n+=1
- for %%c in (!n!) do set "#!n!=!#%%c!%%b "
- )
- )
- for /l %%a in (1,1,!n!) do echo,!#%%a!
- endlocal
- )>"d:\数据2\%%i"
复制代码
作者: 慕夜蓝化 时间: 2015-2-28 18:13
- @echo off&setlocal enabledelayedexpansion
- for %%a in (d:\数据\*.txt) do (
- set/p str=<"%%a"
- for %%b in (!str!) do set/a n+=1
- (for /l %%c in (1 1 !n!) do call :lines %%c "%%a") >%temp%\$
- move /y %temp%\$ "%%a"
- set/a n=0
- )
- pause&exit
-
- :lines
- for /f "usebackq tokens=%1 delims= " %%i in ("%~2") do (
- set/p=%%i <nul
- )
- echo,&goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |