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

[文本处理] [已解决]批处理如何把文件的第一行提取出来放到最后一行?

在文件夹中有N个txt,思路是将各自txt第一行的文字提取出来,放到各自的最后一行去!
不太会表达,不知道大家看清楚没有!

再次感谢:tmplinshi版主!顺祝心想事成!事业顺利!
1

评分人数

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

本帖最后由 tmplinshi 于 2012-11-22 09:30 编辑

以下代码是将第一行复制到文件末尾。第一行不能超过 1024 个字节(中文等全角字符占两个字节,英文/数字之类的半角字符占 1 个字节)。
  1. @echo off
  2. for %%a in (*.txt) do (
  3.     set /p line1=<"%%a"
  4.     set file="%%a"
  5.     setlocal enabledelayedexpansion
  6.     echo,!line1!>>!file!
  7.     endload
  8. )
复制代码

TOP

  1. gawk "{if(NR==1)s=$0;print}END{print s}" a.txt >b.txt
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 iambater 于 2012-11-22 18:44 编辑

回复 2# tmplinshi


    你好版主!
假如我想将各自txt第一行的文字提取出来文字放到末尾的时候,前面和后面加字怎么加呢?

比如原来的第一行是  批处理之家
通过bat处理提取后放到最后一行,但是目前想在他的前面和后面加字!
比如变成    这是批处理之家学习的好地方!

这里红色的字就是提取后再加上的!
今天看到的好多帖子都是您处理的,佩服啊!

再次感谢:tmplinshi版主!顺祝心想事成!事业顺利!

TOP

回复 4# iambater
  1. @echo off
  2. for %%a in (*.txt) do (
  3.     set /p line1=<"%%a"
  4.     set file="%%a"
  5.     setlocal enabledelayedexpansion
  6.     echo,前面!line1!后面>>!file!
  7.     endload
  8. )
复制代码

TOP

回复 4# iambater
  1. @echo off
  2. for %%a in (*.txt) do (
  3.     gawk "{if(NR==1)s=$0}END{print \"前面\" s \"后面\" >>FILENAME}" "%%a"
  4. )
复制代码

TOP

  1. sed "1h;$G" a.txt >b.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. md "temp_\" 2>nul
  3. for /f "tokens=*" %%i in ('dir /b /a-d *.txt') do (
  4.     set /p line=<"%%i"
  5.     (more +1 "%%i"&echo 前面!line!后面)>"temp_\%%~ni_tem.txt"
  6. )
  7. pause
复制代码

TOP

返回列表