Board logo

标题: [文本处理] [已解决]BAT如何批量提取特定字符+后面40个字母TXT的内容? [打印本页]

作者: xp3000    时间: 2013-4-25 20:21     标题: [已解决]BAT如何批量提取特定字符+后面40个字母TXT的内容?

TXT内容:
magnet:?xt=urn:btih:880971CB89EB4FC7527EC037D2898218DBCFF40E     南洋十大邪术.torrent
magnet:?xt=urn:btih:B34C918A941BBA522DE38C25FA84EEA7FB99E7A2     偶遇.torrent
magnet:?xt=urn:btih:5CF13FA5E00CF85151D4CA7C9E6CBA67D7B12E59     武松.torrent

等等有数百行,需要保留每行的前面60个字母,删除空格到t中间的所有内容,要怎么写?
要么复制每行的前面60个字符,要么删除删除空格后面的,两种都要

追加问题 :TXT内容:
1:magnet:?xt=urn:btih:0d3141885750f5382248fc8a8d973dda5deed050&dn=Ka2&tr=http://inferno.demonoid.com:3392/announce
电影2特征码:B6A0DFCBC8BE251025B6578A952E489792B1DF54     [香港电影-整容]
3-电影[花漾]magnet:?xt=urn:btih:3AF2DCAFCCE7D6D964A6C6CF5142F9C1042BA1A9
4.电影男儿无罪BT特征值:33DBF672E0618D83A6F28299F43B7D50DE5A5E7B

TXT文本需要拖动到BAT里面自动完成获取并且替换,主要是提取magnet:?xt=urn:btih:和后面的40个字
获取特征码:后面的40个字并且在前面加上magnet:?xt=urn:btih:
主要是为了获取杂乱文本中的磁力链,完成后效果:
magnet:?xt=urn:btih:0d3141885750f5382248fc8a8d973dda5deed050
magnet:?xt=urn:btih:B6A0DFCBC8BE251025B6578A952E489792B1DF54
magnet:?xt=urn:btih:3AF2DCAFCCE7D6D964A6C6CF5142F9C1042BA1A9
magnet:?xt=urn:btih:33DBF672E0618D83A6F28299F43B7D50DE5A5E7B
作者: xxpinqz    时间: 2013-4-25 21:18

  1. @echo off
  2. (for /f "delims= " %%a in (a.txt) do echo %%a)>b.txt
复制代码

作者: skynjupt    时间: 2013-4-25 21:30

  1. @echo off
  2. chcp 936>nul
  3. :: out_1.txt保存种子地址,out_2.txt保存种子名字
  4. cd.>out_1.txt
  5. cd.>out_2.txt
  6. for /f "tokens=1-2 delims= " %%i in (a.txt) do (
  7. echo %%i>>out_1.txt
  8. echo %%j>>out_2.txt
  9. )
  10. echo 处理完毕,按任意键结束...
  11. pause>nul&exit
复制代码

作者: yoyobye    时间: 2013-4-25 21:40

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (1.txt) do (
  4. set s=%%i
  5. echo !s:~,59!
  6. )
复制代码

作者: xp3000    时间: 2013-4-25 21:56

本帖最后由 xp3000 于 2013-4-25 22:40 编辑

二楼直接删除了不需要的部分,
三楼拆分了后面不需要的,把文本分开
四楼的我不会弄

修改后,原来的已经不需要了,把文本拖进去,直接修改替换原来文本的BAT怎么弄?
作者: BAT-VBS    时间: 2013-4-25 22:48

回复 5# xp3000


在2楼基础上加一句就行了
  1. @echo off
  2. (for /f "delims= " %%a in (a.txt) do echo %%a)>b.txt
  3. move /y b.txt a.txt
复制代码
“拖进去”是一种很不好的习惯,尽量避免。
作者: xp3000    时间: 2013-4-25 23:16

回复 6# BAT-VBS


    哦,文本可能是任意文件名,所以想拖进去
作者: terse    时间: 2013-4-26 01:10

  1. @echo off
  2. (for /f "usebackq" %%i in ("%~1") do echo %%i)>$
  3. move $ %1
  4. pause
复制代码

作者: xp3000    时间: 2013-4-27 13:41

terse 发表于 2013-4-26 01:10



    追问第2个的方法怎么处理?
作者: terse    时间: 2013-4-27 14:23

回复 9# xp3000
特征码 暂不明显 处理很难  即便能处理 也是针对性的 不通用
作者: terse    时间: 2013-4-27 14:34

追问第2个的方法怎么处理?
xp3000 发表于 2013-4-27 13:41
  1. @echo off&setlocal enabledelayedexpansion
  2. set "s=urn:btih"
  3. (for /f "usebackq delims=" %%i in ("%~1") do (
  4.     set "str=%%i"
  5.     for /f "tokens=1* delims=:" %%a in ("!str:*%s%=$!") do (
  6.         set "str=%%b"
  7.         echo !str:~,40!
  8.     )
  9. ))>$
  10. move $ %1
  11. pause
复制代码

作者: xp3000    时间: 2013-4-27 15:15

terse 发表于 2013-4-27 14:34



谢谢帮助,这个好像没把magnet:?xt=urn:btih:提取到里面去,
磁力链需要magnet:?xt=urn:btih: 加 特征码 才能在下载工具批量下载
作者: terse    时间: 2013-4-27 17:10

回复 12# xp3000
嗯 这个你自己加一下吧
作者: xp3000    时间: 2013-4-28 07:59

回复  xp3000
嗯 这个你自己加一下吧
terse 发表于 2013-4-27 17:10
  1. @echo off&setlocal enabledelayedexpansion
  2. set "s=urn:btih"
  3. (for /f "usebackq delims=" %%i in ("%~1") do (
  4.     set "str=%%i"
  5.     for /f "tokens=1* delims=:" %%a in ("!str:*%s%=$!") do (
  6.         set "str=%%b"
  7.         echo ^magnet:?xt=urn:btih:!^!str:~,40!^
  8.     )
  9. ))>$
  10. move $ %1
复制代码
非常感谢,不过文本后面出现了4个空格
作者: terse    时间: 2013-4-28 10:15

  1. echo magnet:?xt=urn:btih:!str:~,40!
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2