标题: [文本处理] 求助批处理怎么自动匹配TXT文件中固定字符? [打印本页]
作者: GEVENS 时间: 2018-10-12 12:12 标题: 求助批处理怎么自动匹配TXT文件中固定字符?
求助怎么自动匹配一个TXT文件中固定字符之间内容相同并提取一整行插入另一个TXT当中的相同内容的末行
比如我有两个TXT文本,一个内容如下
[ur.l=http://bathome.ne/fs/9JeN8EeE8R80b93269/]点击进入下载-Jones 47 (1).torrent[ur.l]
[ur.l=http://bathome.ne/fs/9J4N9E4EbR70090263/]点击进入下载-Todd (1).torrent[ur.l]
[ur.l=http://bathome.ne/fs/1J1NbE1E9R40b9c266/]点击进入下载- HOTand Justin Matthews (720p).mp4.torrentc (1).torrent[ur.l]
[ur.l=http://bathome.ne/fs/fJNeEE2R09926614c4/]点击进入下载-Jesse (1).torrent[ur.l]
另一个内容是这样的
[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
[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
[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
[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
我想达到这样的效果把第一个文本的内容和第二个文本自动匹配相同的内容再插入相同内容的最后一行,效果如下:
[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]
请问各位大神要怎么弄这个BAT代码 ,在此先谢谢各位了。如果一个一个的找出来再插入真的太累了。
作者: WHY 时间: 2018-10-12 16:10
test.ps1- $Hash = @{};
-
- type a.txt | ?{$_ -match '点击进入下载-(.*)\(1\)\.torrent'} | %{
- $key = $matches[1] -replace '[ ()]', '_';
- $Hash[$key] = $_;
- }
-
- type b.txt | group{ $_ -replace '.*?/([^/]*)_\d+_\.jpg\].*$', '$1' } | %{
- $_.Group;
- $Hash[$_.Name];
- } > c.txt
复制代码
作者: GEVENS 时间: 2018-10-12 16:55
回复 2# WHY
请问大您的思路是什么样的
作者: GEVENS 时间: 2018-10-12 17:02
我按照大大的去做了 怎么没有输出C呢
作者: WHY 时间: 2018-10-12 18:58
回复 3# GEVENS
这是 PowerShell 脚本,针对顶楼的样本,我这里没有问题。
作者: xczxczxcz 时间: 2018-10-13 21:10
把有 点击下载 的文件 命名为 a.txt;另一个命名为 b.txt。
脚本和 文档放在一起。
如果是 win7 (需要更新PS版本) 以上系统,则用楼上的 PS 脚本 简单。
附 BAT- @echo off & setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- for /f "tokens=1 delims=][" %%a in (b.txt) do (set "str=%%~nxa" & for /f "tokens=1 delims=/" %%i in ("!str:__=/!") do for /f "tokens=* delims=_" %%n in ("%%i") do set "\%%n=%%n")
- (for /f "tokens=2 delims==" %%a in ('set\') do (set "str=%%a"
- for /f "delims=" %%i in (b.txt) do echo %%i|findstr /i /c:"%%a">nul && echo %%i
- for /f "delims=" %%i in (a.txt) do echo %%i|findstr /i /c:"!str:_= !">nul && echo %%i
- echo;
- ))>##.log
复制代码
=========================================
如文本中有特殊字符则 第 5 ,6 行要用其它写法。
作者: GEVENS 时间: 2018-10-13 23:30
回复 6# xczxczxcz
请问一下大大 如果有特殊符号的话 5,6行要怎么改啊, 不胜感激啊
作者: GEVENS 时间: 2018-10-14 00:52
回复 6# xczxczxcz
非常感谢你 我的大大 。能否使输出的文件按分类好的文本自动以匹配好的名字输出并以匹配的字符做为文件名
因为按您的命令分类好是这样:
[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
谢谢大大了
作者: xczxczxcz 时间: 2018-10-14 01:34
回复 8# GEVENS
轻度优化版- @echo off & cd /d "%~dp0" & setlocal EnableDelayedExpansion
- md NewFiles>nul 2>nul
- for /f "tokens=1* delims=-(" %%a in (a.txt) do (set "str=%%b"
- (for /f "tokens=1* delims=:" %%i in ('findstr /i /n "!str:~0,-1!" b.txt') do echo %%j
- echo %%a-%%b
- )>"NewFiles\!str:torrent[ur.l]=!txt"
- )
复制代码
============================
作者: GEVENS 时间: 2018-10-14 11:04
回复 9# xczxczxcz
大大 我用我发上去的那样测试没问题,可是当换成其它文件的时候就出问题了,输出的文件虽然能按照匹配的字符重命名文件,但是后面没有点TXT直接就没有点,这样要一个一个加入点才能变成扩展的TXT才能打开,并且好多的文本内容没有匹配到 ,是怎么回事,请指教一下,不胜感激,下面这个是出错的文件 工作量太大了 求帮一下 谢谢了
作者: WHY 时间: 2018-10-14 17:08
回复 10# GEVENS
你这 a.txt 与 b.txt 哪里来的固定字符?文不对题。
自己总结好规律,哪一个词是固定的,怎么对应
不要指望别人既给你找规律,又给你写代码。
作者: GEVENS 时间: 2018-10-14 19:18
回复 11# WHY
不好意思大大,,是我没说清楚,他们的规律就是两个文件中有都会有一部份相同的字符的 把相同的匹配在一起 这就是达到的效果 并以匹配的字符作为文件名输出 得到 HOTand Justin Matthews (720p).mp4.torrentc (1).torrent.txt 之关的文件
[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
作者: xczxczxcz 时间: 2018-10-15 17:03
其实偶也预估到这贴又是那种没完没了的。
想要别人帮你,又怕别人看到,说一半留一半,说的和留着的又是两回事。别人不累吗?要不你可以发有偿求助。有红包加持才会有人帮你啊。有得必失嘛。才能阴阳平衡。
本着人道这种贴最后一次回复。但只发图片,体会一下别人写脚本的辛苦。
希望管理员也理解偶的 “作法”。
作者: GEVENS 时间: 2018-10-15 21:12
本帖最后由 GEVENS 于 2018-10-15 21:14 编辑
回复 13# xczxczxcz
已经非常感谢了,你发什么都很感谢了 我真的没有说一半留一半,只是遇到的文件类型不一样,用新文件试了才知道,不过无论如何都非常感谢 我也不会再问一下去 了 谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |