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

[文本处理] 批处理怎样将一行数字变为多行数字?

a.txt文本中的数字如下排列:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
我现在想把数字作分行排列
0
1
2
3
4
...
我的想法是把一个个数字作比较,碰到空格就输出前面的数字。但是总是输出ECHO处于关闭状态,什么原因呢?代码:
  1. @echo off &setlocal EnableDelayedExpansion
  2. for /f "tokens=* delims=" %%a in ( a.txt ) do set b=%%a
  3. set d=1
  4. :abb
  5. if "%b%"=="" exit
  6. set "c=!b:~0,1!"
  7. if not "!c!" == " " set "d=!d!!c!" && set "b=!b:~1!" && goto abb
  8. set "d=%d:~1%"
  9. echo %d% >>ccc.txt
  10. set d=1
  11. goto abb
复制代码

  1. @echo off
  2. for /f "delims=" %%i in (a.txt) do (
  3.    for %%j in (%%i) do echo %%j
  4. )
  5. pause
复制代码
技术问题请到论坛发帖求助!

TOP

额,老大的代码才一句,学习。

TOP

  1. @echo off
  2. set /p var=<123.txt
  3. for %%a in (%var%) do echo %%a
  4. pause
复制代码

TOP

原帖由 cjiabing 于 2010-8-5 23:44 发表
@echo off
set /p var=


你这代码好神奇,不过有个限制。似乎只能支持总共1024个字符,超过的就无能为力了。

TOP

原帖由 solid 于 2010-8-6 09:35 发表


你这代码好神奇,不过有个限制。似乎只能支持总共1024个字符,超过的就无能为力了。


哦,忘记了,呵呵,要求不高的话还是可以用滴!~

TOP

  1. tr " " "\n" < 1.txt | more >2.txt
复制代码

TOP

  1. sed "s/ /\n/g" 1.txt >2.txt
复制代码
  1. gawk "gsub(/ /,\"\n\")" 1.txt >2.txt
复制代码

TOP

以空格分行。
cd.>temp.txt
for /f  "delims=" %%i in (%file%) do (
  for %%a in (%%i) do echo %%a>>temp.txt
)

TOP

  1. xargs -n1 < 1.txt >2.txt
复制代码
  1. perl -pe "s/ /\n/g" 1.txt >2.txt
复制代码

TOP

返回列表