标题: [文件操作] 求助批处理TXT文件批量修改文件名 [打印本页]
作者: zxcdingjia 时间: 2020-6-22 11:13 标题: 求助批处理TXT文件批量修改文件名
批处理抓取TXT文档里固定位置的内容来重命名文件(1000多个)
本来是HTML文件我转换成了TXT,有不用转换可以批量修改的方法也行。
需要抓取第9行,第45-64列的文字来重命名文件,就是图内选定蓝色的日期。(这个日期是固定的位置)
作者: wujunkai 时间: 2020-6-22 12:11
原文件叫什么?
是什么意思?
请表达清楚点
如果能把html文件发上来更好
作者: zxcdingjia 时间: 2020-6-22 14:26
回复 2# wujunkai
源文件是HTML(1000多个)被我批量转换为了TXT 现在就是把TXT文件里那段选定的时间作为文件的名字
这些被转换为TXT文件的前9行代码截至到时间前面全都一致
作者: zxcdingjia 时间: 2020-6-22 14:30
回复 2# wujunkai
HTML文件转换为TXT后图片里选定的那个时间是在第9行 从45列开始至64列结束
1000多个文件这段时间都不重复
作者: Batcher 时间: 2020-6-22 14:45
回复 1# zxcdingjia
请把其中一个txt文件压缩一下传上来我测试代码
作者: zxcdingjia 时间: 2020-6-22 14:48
回复 5# Batcher
作者: smss 时间: 2020-6-22 15:38
回复 6# zxcdingjia
截取时间命名该文本吗2020-06-05 18:18:37
如果是命名时不可包含:
作者: zxcdingjia 时间: 2020-6-22 15:44
回复 7# smss
不要:也可以的
作者: smss 时间: 2020-6-22 18:08
- powershell "if(((gc '*.txt') -join \"`r`n\") -match '\"publish\" content=\"published at (.+?) from mysteel-publish-web\"'){$matches[1]}"
复制代码
- powershell "if(((gc '*.txt') -join \"`r`n\") -match '\"publish\" content=\"published at (.+?) from mysteel-publish-web\"'){$matches[1]};get-childItem -r *.txt | rename-Item -newname{$matches[1]+'.txt'}"
复制代码
结合这个改改就能用了
http://www.bathome.net/viewthread.php?tid=55818&rpid=229402
作者: Batcher 时间: 2020-6-22 19:34
回复 6# zxcdingjia - @echo off
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
- call :ChangeName "%%a"
- ren "%%a" "!NewName!%%~xa"
- )
- goto :eof
-
- :ChangeName
- for /f "skip=8 tokens=3 delims==" %%i in ('type %1') do (
- set "str=%%i"
- goto :GetName
- )
- goto :eof
-
- :GetName
- set "NewName=!str:~14,19!"
- set "NewName=!NewName::=!"
- goto :eof
复制代码
作者: zxcdingjia 时间: 2020-6-22 20:21
回复 10# Batcher
谢谢大佬 很好用
作者: zxcdingjia 时间: 2020-6-22 20:22
回复 9# smss
谢谢 已经解决了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |