找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29876|回复: 12

[文本处理] 批量处理文本把第一行内容添加到最后一行

[复制链接]
发表于 2015-1-20 00:09:11 | 显示全部楼层 |阅读模式
本帖最后由 乱乱 于 2015-1-20 13:26 编辑

有一批文本类似下面内容:
J1,1,732.000,166.000
J2,1,992.483,373.515
J3,1,925.180,377.609
需要把第一行内容复制到最后一行,形成如下格式:
J1,1,732.000,166.000
J2,1,992.483,373.515
J3,1,925.180,377.609
J1,1,732.000,166.000
希望各位大大能给个批处理,感激不尽!
文本前后.rar (507 Bytes, 下载次数: 9)
发表于 2015-1-20 10:22:19 | 显示全部楼层
本帖最后由 yiwuyun 于 2015-1-20 10:24 编辑

gawk "{if(FNR==1)a=$0; print;}END{print a;}"  1.txt
发表于 2015-1-20 10:34:00 | 显示全部楼层

  1. @echo off
  2. set/p firstLine= <1.txt
  3. echo, >>1.txt
  4. set/p=%firstLine% <nul >>1.txt
  5. pause
复制代码
将1.txt改为你要更改的文件名。
 楼主| 发表于 2015-1-20 10:52:31 | 显示全部楼层
回复 3# 慕夜蓝化


    我的是一堆文件呢?
发表于 2015-1-20 11:58:16 | 显示全部楼层
回复 4# 乱乱

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (*.txt) do (
  3.     set/p firstLine= <"%%~i"
  4.     set/p= <nul >>"%%~i"&echo, >>"%%~i"
  5.     echo,!firstLine!>>"%%~i"
  6. )
  7. pause
复制代码
对当前文件夹下的所有文件有效。如果要作用于子目录,可以添加 /r 参数

  1. for /r %%i in (*.txt) do (
复制代码
另外,在这里,我想询问下,为什么这里直接导入 >> 会出现在最后一行末尾的后面,而不是另起一行添加呢?
 楼主| 发表于 2015-1-20 12:13:11 | 显示全部楼层
回复 5# 慕夜蓝化


    嗯,我是要另起一行添加,能改一改吗?
发表于 2015-1-20 12:24:29 | 显示全部楼层
本帖最后由 DAIC 于 2015-1-20 13:39 编辑

把第一行移动到最后一行:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     set /p firstLine=<"%%i"
  5.     more +1 "%%i" >"%%i.new"
  6.     >>"%%i.new" echo,!firstLine!
  7.     move /y "%%i.new" "%%i"
  8. )
复制代码
把第一行复制到最后一行:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     set /p firstLine=<"%%i"
  5.     type "%%i" >"%%i.new"
  6.     >>"%%i.new" echo,!firstLine!
  7.     move /y "%%i.new" "%%i"
  8. )
复制代码
 楼主| 发表于 2015-1-20 12:33:26 | 显示全部楼层
回复 7# DAIC


     这个批处理把我的第一行删掉了?我要保留第一行并把第一行的内容复制到最后一行
发表于 2015-1-20 12:56:46 | 显示全部楼层
回复 8# 乱乱


    我这里测试没有问题。你找一个txt文件,把执行脚本之前和执行脚本之后的文件打包压缩传上来我看看。
 楼主| 发表于 2015-1-20 13:27:47 | 显示全部楼层
回复 9# DAIC


    我把文本上传了,我试了你的批处理,把我的第一行挪到了最后一行
 楼主| 发表于 2015-1-20 13:33:09 | 显示全部楼层
回复 7# DAIC


       more +1 "%%i" >"%%i.new"

这个把+1删除,即可
发表于 2015-1-20 13:37:38 | 显示全部楼层
回复 11# 乱乱


    把 more +1 改成 type 比较好
 楼主| 发表于 2015-1-20 14:21:05 | 显示全部楼层
回复 12# DAIC


    嗯,谢谢啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 19:08 , Processed in 0.011897 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表