标题: [技术讨论] 请来挑战——wget 如何实现批量下载的同时,可以自动重命名 [打印本页]
作者: hacker85 时间: 2014-4-7 18:07 标题: 请来挑战——wget 如何实现批量下载的同时,可以自动重命名
本帖最后由 hacker85 于 2014-4-7 18:15 编辑
http://mr3.douban.com/2014040321 ... 3/mp3/x12714775.mp3 Shadow of You
http://mr4.douban.com/2014040321 ... 3/mp3/x14826133.mp3 Uke Blues (live)
http://mr4.douban.com/2014040321 ... 3/mp3/x11670461.mp3 完美心灵
http://mr3.douban.com/2014040321 ... 3/mp3/x10192406.mp3 REA ZEBRA
http://mr3.douban.com/2014040321 ... 3/mp3/x10192607.mp3 sleepy cafe
http://mr3.douban.com/2014040321 ... 3/mp3/x10319750.mp3 Crazy Train
http://mr3.douban.com/2014040321 ... 3/mp3/x11705280.mp3 Fuzzy Bro Blues
http://mr4.douban.com/2014040321 ... 3/mp3/x12995251.mp3 一个人的歌
http://mr3.douban.com/2014040321 ... 3/mp3/x14501719.mp3 Morning
http://mr4.douban.com/2014040321 ... 3/mp3/x14568771.mp3 挽歌
上面的内容是一个file文件里的内容,每一个URL的后面有两个空格,然后就是这个mp3文件的名字了。
现在能wget -i file 则可以实现批量下载这些文件 ,但是下载下来的文件的名字太不容易辨别了, 于是想通过某种办法实现批量下载的同时,能
自动按每个文件后面的名字来重命名。请教大家。3Q
特别的:
如果您写出了方法,可以再追加一个功能,即对于倒数第一首和第三首歌曲,我之前已经手工下载完了,也改了名字了。如今,对于您的“办法”中,
是否可以加入“自动识别”功能——如果在默认下载目录里,已经存在了同名的文件,那么则不下载file文件中对应的URL。
PS:
1、当然,对于“特别的”这是一个额外的功能。
2、上面的URL是在浏览器的缓存中找出的,对于浏览器没有关闭的情况下,地址是可以正常下载的,但截止至发帖时,这些地址居多都不好用了,所以
只能作为事例讲解于此。
作者: DAIC 时间: 2014-4-7 19:39
- @echo off
- for /f "tokens=1-2" %%i in (a.txt) do (
- wget "%%i" -O "%%j.mp3"
- )
复制代码
作者: hacker85 时间: 2014-4-7 22:09
回复 2# DAIC
呵,我说得是在Linux下,不是在windows下。
作者: CrLf 时间: 2014-4-7 22:48
本帖最后由 CrLf 于 2014-4-7 23:15 编辑
回复 3# hacker85
若回显无误再把那个 echo 去掉:- IFS=\n'
- for i in $(gawk '$2 {print "wget \""$1"\" -o \""$2"\""}' 'INPUTFILE');do echo $i;done
复制代码
若第二列不含分隔符,可以只用 while:- while read l1 l2; do echo "wget \"$l1\" -o \"$l2\""; done<'INPUTFILE'
复制代码
作者: DAIC 时间: 2014-4-8 10:15
回复 4# CrLf
有空格也没关系吧- #!/bin/bash
- while read c1 c2; do
- wget "$c1" -O "$c2.mp3"
- done < a.txt
复制代码
作者: CrLf 时间: 2014-4-8 16:20
回复 5# DAIC
对噢,这个相当于 tokens=1*,还以为指定多个变量时跟 for 一样是逐列的,惯性思维...学习了
作者: xiedeng 时间: 2014-4-11 15:40
回复 5# DAIC
正解!学习了!
作者: tbjx138 时间: 2014-11-21 22:38
回复 CrLf
有空格也没关系吧
DAIC 发表于 2014-4-8 10:15
这个怎么用啊?
作者: DAIC 时间: 2014-11-24 10:03
回复 8# tbjx138
这个是 shell 脚本,在 Linux 系统里面执行。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |