V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cairnechen
V2EX  ›  问与答

批量下载 http 地址只有序号变动的图片,怎么实现?

  •  
  •   cairnechen · 2017-12-02 18:19:42 +08:00 · 3121 次点击
    这是一个创建于 2308 天前的主题,其中的信息可能已经有所发展或是发生改变。
    应该很简单吧,只用 BAT 能实现吗,我的第一想法是 BAT call you-get
    30 条回复    2017-12-04 12:25:01 +08:00
    kamen
        1
    kamen  
       2017-12-02 18:48:58 +08:00
    Internet Download Manager
    cairnechen
        2
    cairnechen  
    OP
       2017-12-02 19:06:26 +08:00
    @kamen 不用软件,可能我没清楚重点,重点是 bat,不是要达到目的,而是要用这种方式达到目的
    xfspace
        3
    xfspace  
       2017-12-02 19:23:28 +08:00 via Android
    Windows 没有内置类似 Linux 的 curl/wget 等能访问 HTTP 协议的软件,故无法实现。
    xmcp
        4
    xmcp  
       2017-12-02 19:23:46 +08:00 via iPhone
    for /l %%i in (1,1,20) do echo http://t.tt/%%i.png
    你是说这样?
    Humorce
        5
    Humorce  
       2017-12-02 19:25:49 +08:00 via iPhone
    用 bat 列出出所有地址之后,你还是要调用第三方程序去下载
    40huo
        6
    40huo  
       2017-12-02 19:27:10 +08:00 via Android
    powershell 有 windows 自己搞的一个 curl
    cairnechen
        8
    cairnechen  
    OP
       2017-12-02 20:02:58 +08:00
    @xmcp 你这并不能下载啊,朋友
    lybtongji
        9
    lybtongji  
       2017-12-02 20:04:26 +08:00
    谁说 Windows 没内置下载器的。

    bitsadmin /rawreturn /transfer getfile "http://img5.cache.netease.com/photo/0001/2013-03-28/8R1BK3QO3R710001.jpg" "C:\abc.jpg"
    t123yh
        10
    t123yh  
       2017-12-02 20:06:09 +08:00 via Android
    去下一个 wget.exe
    sneezry
        11
    sneezry  
       2017-12-02 20:07:03 +08:00 via iPhone
    为啥不生成一张网页,然后用浏览器保存网页全部,图片就顺带着下载下来了
    onsale
        12
    onsale  
       2017-12-02 20:08:12 +08:00 via Android   ❤️ 1
    ```
    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
    -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command
    "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
    && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    ```
    cairnechen
        13
    cairnechen  
    OP
       2017-12-02 20:10:15 +08:00
    @lybtongji 咦?我去试试看
    cairnechen
        14
    cairnechen  
    OP
       2017-12-02 20:12:37 +08:00
    @t123yh 就是希望不需要自己去额外下载工具
    oonnnoo
        15
    oonnnoo  
       2017-12-02 20:43:45 +08:00 via Android
    循环 wget
    t123yh
        16
    t123yh  
       2017-12-02 20:50:43 +08:00 via Android
    @cairnechen 可以试试 bat 调用 vbs 进行 HTTP 下载
    msg7086
        17
    msg7086  
       2017-12-02 21:35:21 +08:00
    #14 @cairnechen 一直到 14 楼才说出需求,实在是……

    正常情况下,下载一个 Windows 版的 wget 就结了。同理 aria2 也行。
    boboliu
        18
    boboliu  
       2017-12-02 21:37:14 +08:00 via Android
    PS 有 curl,还用啥 bat 啊
    dream7758521
        19
    dream7758521  
       2017-12-02 21:37:57 +08:00 via Android
    迅雷批量下载啊
    cairnechen
        20
    cairnechen  
    OP
       2017-12-02 23:16:39 +08:00
    @msg7086 然而你并没要理解我的需求 #3 #5 #9 理解了
    sola97
        21
    sola97  
       2017-12-03 01:58:59 +08:00 via Android
    这时候 win10 的 WSL bash 用途就来了
    azh7138m
        22
    azh7138m  
       2017-12-03 02:38:36 +08:00
    @xfspace @boboliu
    那是 Invoke-WebRequest,事实上 win10 的 PS 里面 alias curl=Invoke-WebRequest
    xfspace
        23
    xfspace  
       2017-12-03 10:56:06 +08:00 via Android
    @azh7138m 楼主要用 bat,PS 离题了。
    msg7086
        24
    msg7086  
       2017-12-03 21:28:12 +08:00
    @cairnechen 说个鬼故事,我们 DOS 时代就在用批处理了,那时候还没有 Windows。
    如果你不把需求描述清楚,对于答者来说就只能靠猜。
    猜对了的会被你说成理解了你的需求,没猜对的只能闷头喊一声 MMP。
    #3 #5 #9 说的是用最近版本的 Windows 实现下载,而不是批处理(即 cmd.exe 命令解释器)实现下载。
    cairnechen
        25
    cairnechen  
    OP
       2017-12-03 22:49:02 +08:00
    @msg7086
    第一时间发帖的时候我的措辞可能还有歧义(歧义在于后面那句 BAT + you-get,有人可能误以为这是在提供 option )
    到#2 的时候我认为就已经很清楚了,到#7 还不能理解的我觉得也没必要多费口舌了。
    #3 #5 #9 回答的正是批处理能否实现下载,windows 只是 bat 隐含的背景条件,如果这都要纠结的话,别忘了,茴字可是有足足四种写法呢
    老师上课,台下的学生有的听懂了,有的没听懂,没听懂的天天 MMP,怪老师讲课太烂还是怪学生资质太差,这确实是个问题。
    msg7086
        26
    msg7086  
       2017-12-03 22:54:59 +08:00
    原来阁下问问题是老师在考学生啊,失敬了。
    楼上那些答出来的学生莫不是要问阁下这位上课的老师拿小红花了。
    回答不出来的咋办,去楼道里罚站咯。
    以后阁下的贴我还是绕道走免得我这位学生资质太差影响您上课了。
    cairnechen
        27
    cairnechen  
    OP
       2017-12-03 23:12:24 +08:00
    @msg7086 哟,这跳脚的姿势不太优雅了啊,踩到痛处了?我哪能当您的老师啊,您这随手一顶帽子扣我身上,我就得吃不了兜着走。学生和老师的例子不过是说明归因错误,您也能曲解一番当作斗争工具,自愧弗如啊。
    msg7086
        28
    msg7086  
       2017-12-03 23:41:32 +08:00
    @cairnechen 莫名其妙。
    痛处?你来问问题要靠别人猜,猜不中浪费大家的时间,我有痛处?搞笑也要有个限度。
    PS: 你的例子举得很恰当,随手一顶学生资质太差的帽子扣我身上,提问者说话不清不楚是回答者的错,我吃不了,Block 着走。希望你以后能坚持说话不清不楚,狠狠怼给你建议的人,祝好。
    cairnechen
        29
    cairnechen  
    OP
       2017-12-03 23:51:18 +08:00
    @msg7086 扑哧,我才莫名奇妙嘞,你这处处高人一等,随时教别人做人的毛病到底哪里来的,我追求描述精确但不是茴字有四种写法这种精确,明明是自己有理解有误差却要怪别人没说清楚,我真没笑。放心,俺是不会 block 你的,毕竟不是所有人都喜欢当鸵鸟。
    msg7086
        30
    msg7086  
       2017-12-04 12:25:01 +08:00
    @cairnechen
    这么说吧,这本来是个很值得回味的帖子,但是我根本不知道该从何回起,因为根本不知道你问题的边界到底在哪。
    BAT 调用 wget,你说不行。
    BAT 调用 powershell 的 API,看上去也不满足你的要求。
    BAT 调用 bitsadmin 再转而调用 BITS 后台智能下载服务你又说可以,哪怕 BITS 服务是可以被禁用的,而且禁用以后 bitsadmin 就废了,也没关系。
    不知道该如何吐槽。
    正常人实现这个功能根本不会去考虑只用 BAT,系统自带的 vbscript 解释器和 powershell 已经足够用了。拒绝 vbs 我只能考虑你是不是根本就不想依赖 Windows ?毕竟 vbscript 微软从 1996 年就开始支持了,比 bits 服务不知道早到哪里去了。
    至于 BAT 不调用任何 Windows 系统程序来实现下载,是可以实现的,最小依赖是 BAT 解释器和 VC 运行时。
    但似乎你心里已经有答案了,不需要我多废话了吧。
    我没兴趣教你做人,我只是希望你能把问题说明白,这样我可以有个起点可以开始回答问题。不喜欢就算了你开心就好,以后看到你的帖子我会努力保持克制,避免回答问题以免引起你的不快。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1499 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:52 · PVG 07:52 · LAX 16:52 · JFK 19:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.