标题: [文本处理] 批处理提取文本最后一行 做TXT文件名,哪里出错了? [打印本页]
作者: GEVENS 时间: 2018-10-13 12:53 标题: 批处理提取文本最后一行 做TXT文件名,哪里出错了?
这个代码不能用 请问是哪里出错了- @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
复制代码
PS 如果我想提取特定字符后面的几位文字 给TXT重命名?
比如:
比如 TXT中的内容是这样的
https://home.net/w9ql8n4z2gky/_Spencer_Laval_and_Justin_Matthews__720p
wist.com/th/25572/5ov2u3cdm454
FSAKDFSA点击下载-- i love:/\/ you *?so :/\/:*?“<>| much
然后我要提取 点击下载--后面的 i love you so much 做为文件名 因为:/ 是特殊字符 所以遇到有特殊字符要删除
最终得到的TXT名是这样的 i love you so much.txt
请问批处理要怎么写 谢谢了!
作者: Batcher 时间: 2018-10-13 14:45
- @echo off
- powershell "$LastLine = (gc 1.txt | select -last 1); $FileName = $LastLine -replace '(.*点击下载-- |[^a-z ])', ''; Rename-Item '1.txt' ""$FileName.txt"""
复制代码
作者: GEVENS 时间: 2018-10-13 16:29
回复 2# Batcher
谢谢大大 但是这个只能 处理一个文件名为1.txt的文件 ,我想处理文件夹里所有TXT的文件,并且大大这个命令也会提取指定关健字之前的文字 麻烦改一下 谢谢了
作者: Batcher 时间: 2018-10-13 16:46
回复 3# GEVENS
我用顶楼的文本内容做测试没有发现会提取指定关健字之前的文字。把你测试用的真实文本发出来我再试试
作者: GEVENS 时间: 2018-10-13 16:59
回复 2# Batcher
谢谢大大 ,但是大大这只能处理一个,并且大大这个会把有些文件里的关健词之前的字也提取了 请问怎么改可以批处理文件夹内的所有TXT文件并且只提取关健词之后的字,谢谢了
作者: GEVENS 时间: 2018-10-13 17:03
回复 5# GEVENS
1. 点击“普通下载FDGSDGGDFSGSD
JLDKSFAJLFSALDJJJFJALSD载
下载地址:[url=http://qwefassfa.net/fs/6JNcEEdR0992968997/]点击下载-- Arthur & Lucas25523423.mp4
比如这个文本
作者: Batcher 时间: 2018-10-13 17:09
回复 6# GEVENS
测试结果是什么?哪个是关健词之前的字?
作者: GEVENS 时间: 2018-10-13 18:10
回复 7# Batcher
(点击下载--)括号里面 是关键字 测试的结果是文件名变成这样了urlhttpqwefassfanetfsJNcEEdR Arthur Lucasmp 如果按要求应该是这样 Arthur & Lucas25523423mp
作者: Batcher 时间: 2018-10-13 18:20
回复 8# GEVENS
我用6楼文本测试没有发现这种情况。把你测试用的1.txt压缩传上来我试试。另外,你的操作系统是什么版本?
作者: GEVENS 时间: 2018-10-13 19:08
win8的操作系统 ,大大的这个只能处理一个 同名文件吗 ?我想批处理文件
作者: Batcher 时间: 2018-10-13 19:09
回复 10# GEVENS
稍微修改一下就能批量处理了。重要的是先找出为什么你和我的测试结果不一致。把你的1.txt传上来吧,我试试。
作者: GEVENS 时间: 2018-10-13 19:11
回复 11# Batcher
我已经上传 了大大
作者: xczxczxcz 时间: 2018-10-13 20:49
你在另一贴中 Q 了一上ME . 就在这插一下楼。- /\*??::<>|][)(}{~`.&^@#$%%!!';‘’_-“”
复制代码
这些是脚中过滤的特殊字符,你自己根据情况增删,不要加入半角双引号。
下面的脚本,和你的 txt 文件放在一起。改名的文件会放到 NEW 文件夹中。- @echo off & cd /d "%~dp0"
- for /f "delims=" %%f in ('dir/a-d/b "*.txt"') do for /f "delims=" %%a in ('type "%%f"') do (echo %%a>#&findstr /i /c:"点击下载" #>nul&&for /f "tokens=2 delims=-" %%i in (#) do if "%%i" neq "" (echo %%i>#&set "str="&set "out="&call :SYMBOL &echo f|cmd /v:on /c xcopy /y "%%f" "NEW\!out:~0,-1!.txt">nul&del /q /f #))
- pause & exit
- :SYMBOL
- for /f "tokens=1* delims=/\*??::<>|][)(}{~`.&^@#$%%!!';‘’_-“”" %%a in (#) do (set "str=%str%%%a"&if "%%b" neq "" (echo %%b>#&goto SYMBOL))
- set "str=%str:"=%"
- CALL :END "%str%"
- goto :eof
- :END
- for /f "tokens=1*" %%a in ("%~1") do (set "out=%out%%%a "&if "%%b" neq "" call :END "%%b")
复制代码
=========================
作者: GEVENS 时间: 2018-10-14 00:36
本帖最后由 GEVENS 于 2018-10-14 00:50 编辑
非常感谢你 我的大大 。能否使输出的文件按分类好的文本自动以匹配好的名字输出并以匹配的字符做为文件名
因为按您的命令分类好是这样:
[U,RL=https://bathome.net/w9ql8n4z2gky/_HOTand_Justin_Matthews__720p_.mp4.torrentc__1_.jpg][IM。G]https://img200.bathome.net/th/25578/w9ql8n4z2gky.jpg[IM。G][U,RL
[U,RL=https://bathome.net/8tf7sjuofmcw/_HOTand_Justin_Matthews__720p_.mp4.torrentc__2_.jpg][IM。G]https://img200.bathome.net/th/25578/8tf7sjuofmcw.jpg[IM。G][U,RL
[U,RL=https://bathome.net/sribjmyi3qgt/_HOTand_Justin_Matthews__720p_.mp4.torrentc__3_.jpg][IM。G]https://img200.bathome.net/th/25578/sribjmyi3qgt.jpg[IM。G][U,RL
[U,RL=https://bathome.net/1i8vykf5bv3x/_HOTand_Justin_Matthews__720p_.mp4.torrentc__4_.jpg][IM。G]https://img200.bathome.net/th/25578/1i8vykf5bv3x.jpg[IM。G][U,RL
[U,RL=https://bathome.net/2o05tdhpzxow/_HOTand_Justin_Matthews__720p_.mp4.torrentc__5_.jpg][IM。G]https://img200.bathome.net/th/25578/2o05tdhpzxow.jpg[IM。G][U,RL
[ur.l=http://bathome.ne/fs/1J1NbE1E9R40b9c266/]点击进入下载- HOTand Justin Matthews (720p).mp4.torrentc (1).torrent[U,RL
[U,RL=https://bathome.net/onp7trgng826/Jesse__1_.JPG][IM。G]https://img200.bathome.net/th/25578/onp7trgng826.jpg[IM。G][U,RL
[U,RL=https://bathome.net/eqxpxelckmnp/Jesse__2_.jpg][IM。G]https://img200.bathome.net/th/25578/eqxpxelckmnp.jpg[IM。G][U,RL
[U,RL=https://bathome.net/0twpresz23co/Jesse__3_.JPG][IM。G]https://img200.bathome.net/th/25578/0twpresz23co.jpg[IM。G][U,RL
[U,RL=https://bathome.net/pwvgi2ctip3g/Jesse__4_.jpg][IM。G]https://img200.bathome.net/th/25578/pwvgi2ctip3g.jpg[IM。G][U,RL
[ur.l=http://bathome.ne/fs/fJNeEE2R09926614c4/]点击进入下载-Jesse (1).torrent[ur.l]
[U,RL=https://bathome.net/amdhxf484ogx/Jones_47__1_.jpg][IM。G]https://img200.bathome.net/th/25578/amdhxf484ogx.jpg[IM。G][U,RL
[U,RL=https://bathome.net/bqdeph1ow9yu/Jones_47__2_.jpg][IM。G]https://img200.bathome.net/th/25578/bqdeph1ow9yu.jpg[IM。G][U,RL
[U,RL=https://bathome.net/mgkp502pf28s/Jones_47__3_.jpg][IM。G]https://img200.bathome.net/th/25578/mgkp502pf28s.jpg[IM。G][U,RL
[U,RL=https://bathome.net/libk0gwwg3r6/Jones_47__4_.jpg][IM。G]https://img200.bathome.net/th/25578/libk0gwwg3r6.jpg[IM。G][U,RL
[ur.l=http://bathome.ne/fs/9JeN8EeE8R80b93269/]点击进入下载-Jones 47 (1).torrent[ur.l]
[U,RL=https://bathome.net/a62yt1ji91ry/Todd__1_.jpg][IM。G]https://img200.bathome.net/th/25578/a62yt1ji91ry.jpg[IM。G][U,RL
[U,RL=https://bathome.net/lgjgv11ua0wo/Todd__2_.jpg][IM。G]https://img200.bathome.net/th/25578/lgjgv11ua0wo.jpg[IM。G][U,RL
[U,RL=https://bathome.net/1b6f44su29yg/Todd__3_.jpg][IM。G]https://img200.bathome.net/th/25578/1b6f44su29yg.jpg[IM。G][U,RL
[U,RL=https://bathome.net/zicq6sqhza23/Todd__4_.jpg][IM。G]https://img200.bathome.net/th/25578/zicq6sqhza23.jpg[IM。G][U,RL
[ur.l=http://bathome.ne/fs/9J4N9E4EbR70090263/]点击进入下载-Todd (1).torrent[ur.l]
但是我最后想达到这样的效果,就是使分类好的文件分割成同等的单独的份数并以匹配的字符命名文件。
按照样本输出最终是: HOTand Justin Matthews (720p).mp4.torrentc.txt Jesse (1).txt Jones 47 (1).txt Todd (1).txt
谢谢大大了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |