[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

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

本帖最后由 屡败屡战 于 2017-4-11 07:29 编辑

求助各位大绅,我有大量文本文件,但是txt文件的标题却是在尾部,我求助能够批量提取TXT文件的尾行并且对文件进行改名。万分感谢!!我在网上找的都是提取首行的,不符合本人要求

附件: 您需要登录才可以下载或查看附件。没有帐号?注册
1

评分人数

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

把你找的都是提取首行的发出来看看,我帮你改改。

TOP

谢谢老师!!
代码如下:
@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
)

TOP

回复 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

TOP

老师好,我是初学者,有些蒙圈,自已不会改,请帮着写写

TOP

我自己改了下,不行啊,经测试后,不行啊

TOP

回复 6# 屡败屡战


    有什么报错信息?

TOP

报锗信息:
存在一个重名文件,或是找不到文件。
凊按任意键继续.....

TOP

回复 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

评分人数

TOP

本帖最后由 /zhqsystem/zhq 于 2017-4-11 00:17 编辑

回复 3# 屡败屡战
删除ren的行,第一个for中的行结尾加入&&ren "%%~fa" "!b::=!%%~xa"
注:如果存在非法字符提前删除
这么好的论坛你上哪找
注:请遵守互联网信息安全,勿用于非法用途,伸手党直接去某度

TOP

回复 9# ShowCode


    感谢老师,巳亲测通过ok,老师辛苦了,望老师推荐或发一些批处理教程、pdf之类的,懂些批处理,会大大提高工作效率

TOP

TOP

老师,我还想问问,如果延伸一下,我想用倒数第二行、第三行...进行文件重命名,   请问在批处理命令上应该如何修改?

TOP

回复 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



为什么我改了用不了  是哪里出错了

TOP

返回列表