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

[文本处理] 【已解决】批处理如何实现提取TXT文件的尾行/最后一行对文件进行改名/重命名

[复制链接]
发表于 2017-4-10 09:58:31 | 显示全部楼层 |阅读模式
求助各位大绅,我有大量文本文件,但是txt文件的标题却是在尾部,我求助能够批量提取TXT文件的尾行并且对文件进行改名。万分感谢!!我在网上找的都是提取首行的,不符合本人要求

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2017-4-10 10:07:45 | 显示全部楼层
把你找的都是提取首行的发出来看看,我帮你改改。
 楼主| 发表于 2017-4-10 10:16:20 | 显示全部楼层
谢谢老师!!
代码如下:
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do set "txt=%%a" & call :aa
pause
:aa
for /f "usebackq delims=*" %%b in ("!txt!") do (
  set "a=%%a" & set "b=%%b"
  ren "!a!" "!b!.txt"
  goto :eof
)
发表于 2017-4-10 10:30:56 | 显示全部楼层
回复 3# 屡败屡战


把倒数第三行和倒数第二行拿到for循环外面试试

@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do set "txt=%%a" & call :aa
pause
:aa
for /f "usebackq delims=*" %%b in ("!txt!") do (
  set "a=%%a" & set "b=%%b"
)
ren "!a!" "!b!.txt"
goto :eof
 楼主| 发表于 2017-4-10 10:42:18 | 显示全部楼层
老师好,我是初学者,有些蒙圈,自已不会改,请帮着写写
 楼主| 发表于 2017-4-10 15:21:38 | 显示全部楼层
我自己改了下,不行啊,经测试后,不行啊
发表于 2017-4-10 15:57:56 | 显示全部楼层
回复 6# 屡败屡战


    有什么报错信息?
 楼主| 发表于 2017-4-10 16:05:47 | 显示全部楼层
报锗信息:
存在一个重名文件,或是找不到文件。
凊按任意键继续.....
发表于 2017-4-10 23:26:43 | 显示全部楼层
回复 8# 屡败屡战


@echo on
setlocal enabledelayedexpansion
for %%a in (*.txt) do set "txt=%%a" & call :aa
pause
:aa
for /f "usebackq delims=*" %%b in ("!txt!") do (
    set "a=%%a" & set "b=%%b"
)
echo +++ "!a!" "!b!.txt"
if exist "!b!.txt" (
    echo --- 重复
) else (
    ren "!a!" "!b!.txt"
)

goto :eof

执行这个代码,把详细的结果发出来。

评分

参与人数 1技术 +1 收起 理由
屡败屡战 + 1 解决问题

查看全部评分

发表于 2017-4-11 00:12:49 | 显示全部楼层
本帖最后由 /zhqsystem/zhq 于 2017-4-11 00:17 编辑

回复 3# 屡败屡战
删除ren的行,第一个for中的行结尾加入&&ren "%%~fa" "!b::=!%%~xa"
注:如果存在非法字符提前删除
 楼主| 发表于 2017-4-11 07:25:00 | 显示全部楼层
回复 9# ShowCode


    感谢老师,巳亲测通过ok,老师辛苦了,望老师推荐或发一些批处理教程、pdf之类的,懂些批处理,会大大提高工作效率
发表于 2017-4-11 10:27:58 | 显示全部楼层
 楼主| 发表于 2017-4-12 09:11:06 | 显示全部楼层
老师,我还想问问,如果延伸一下,我想用倒数第二行、第三行...进行文件重命名,   请问在批处理命令上应该如何修改?
发表于 2018-10-12 14:05:39 | 显示全部楼层
回复 1# 屡败屡战




   请问你后面改好的代码是这样 的吗?
@echo on
setlocal enabledelayedexpansion
for %%a in (*.txt) do set "txt=%%a" & call :aa&&ren "%%~fa" "!b::=!%%~xa"
pause
:aa
for /f "usebackq delims=*" %%b in ("!txt!") do (
    set "a=%%a" & set "b=%%b"
)
echo +++ "!a!" "!b!.txt"
if exist "!b!.txt" (
    echo --- 重复
) else (

)
goto :eof



为什么我改了用不了  是哪里出错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 03:29 , Processed in 0.032125 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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