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

[文本处理] [已解决]按列换行输出的批处理文件有何错误?

本帖最后由 wwwjjjxxx 于 2011-12-31 22:07 编辑

本人想将一个TXT文本的内容转换一下,原文件格式如下:
11223344#2345#abcdef
34567#qwert#sdfreygfjh
.....................
共有几百万行转换成如下格式:
11223344
2345
abcdef
34567
qwert
sdfreygfjh
批处理代码如下:
  1. @echo off>b.txt
  2. for /f "delims=" %%i in (a.txt)do set h=%%i&call :x
  3. start notepad b.txt&exit
  4. :x
  5. set h=%h:#=;%
  6. call :y %h%
  7. :y
  8. if "%~1"=="" goto :eof
  9. echo.%~1>>b.txt
  10. shift&goto y
复制代码
不知为何只执行很少一部分就出错终止,显示为"‘n’不是内部和外部命令..."等提示,请各位老大帮忙看一下那里出问题了。先谢谢了!
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

  1. sed "s/#/\n/g" a.txt >b.txt
复制代码
1

评分人数

    • CrLf: 元旦快乐技术 + 1

TOP

回复 2# awk
还是不行啊,能给一个完整的吗?

TOP

回复 3# wwwjjjxxx


已经很完整了
有什么报错信息吗?

TOP

回复 4# awk
只是建立b文本文件并打开,其他没任何操作

TOP

回复 5# wwwjjjxxx


正常来说,这句代码是不会打开b.txt的。

你的sed版本是什么?
你的a.txt是什么编码格式?
你是怎样运行这句代码的?

TOP

回复 6# awk
大哥见笑了,我对这方面不太懂,我只是想在WIN7环境下以批处理的形式运行,不知能解决不

TOP

回复 6# awk
文件编码是ANSI

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     set "str=%%a"
  5.     set str=!str:#=^
  6. !
  7.     echo,!str!
  8. ))>b.txt
复制代码

TOP

回复 9# awk
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     set "str=%%a"
  5.     set str=!str:#=^!
  6.     echo,!str!
  7. ))>b.txt
复制代码
这样结果只是去掉了“#”并未换行

TOP

回复 10# wwwjjjxxx


如果你还没看懂9楼的代码,请不要乱修改,直接点击“复制代码”就行了。

TOP

回复 11# awk
如果原封不动执行会产生如下结果
str:#=
str:#=
..........

TOP

回复 12# wwwjjjxxx


我上传一个现成的,你试试。

TOP

回复 13# awk
只是去掉了#未换行
内有一测试文件,您可以试一下

TOP

试试这个:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     set "str=%%a"
  5.     set str=!str:#=^
  6. !
  7.     echo,!str!
  8. ))>b_tmp.txt
  9. more b_tmp.txt >b.txt
复制代码

TOP

返回列表