windows - wget 从具有多个部分的多个 URL 下载多个文件

标签 windows batch-file download wget

新手在此提前致歉。

基本上,我正在尝试尽可能多地自动化我的流程。我希望能够下载分成不同 .ts 部分(大约 150 个部分)的流媒体视频。

出于某种原因,使用 {0..150} 函数循环遍历各个部分对我不起作用,因为它将字符串解释为 URL 的一部分,返回“未找到”错误。 (可能是我正在通过 Windows cmd 运行 wget 吗?)仔细研究了一下,能够制定出一个成功下载视频文件的脚本:

 setlocal enabledelayedexpansion
 @echo off
 set directory=https://URLstring/playlist
 for /l %%x in (0, 1, 150) do (
    set tsNum=%%x
    set num=%directory%!tsNum!
    set ts=.ts
    set file=!num!!ts!
    wget !file!
 )

但是,由于每周上传 10 个这样的视频(每个分成 150 个部分),我希望能够从 .txt 列表中提取 10 个 URL。

我阅读了有关 wget 的 -i 函数的信息,但要么我的语法有误,要么我想不出合并这两个脚本的方法。

有人有什么建议吗?

最佳答案

如果您想从文件中读取 url 到目录变量而不是对目录变量进行硬编码,那么您可以像这样更改脚本:

@echo off
setlocal enabledelayedexpansion
for /f "" %%a in (directory.txt) do (
    set directory=%%a
    for /l %%x in (0, 1, 150) do (
        set tsNum=%%x
        set num=!directory!!tsNum!
        set ts=.ts
        set file=!num!!ts!
        echo wget !file!
    )
)

如果你也想从文件中读取部分的数量,你可以让文件中的每一行都是 url 和部分的数量,用空格或制表符分隔(这是可以的,因为 url 不包含空格和制表符) 然后像这样更改脚本:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2" %%a in (directory.txt) do (
    set directory=%%a
    set parts=%%b
    for /l %%x in (0, 1, !parts!) do (
        set tsNum=%%x
        set num=!directory!!tsNum!
        set ts=.ts
        set file=!num!!ts!
        echo wget !file!
    )
)

就像@Squashman 所说的,根本没有理由将值存储在环境变量中——您可以像这样直接使用 for 循环变量:

@echo off
for /f "tokens=1,2" %%a in (directory.txt) do (
    for /l %%x in (0, 1, %%b) do (
        echo wget %%a%%x.ts
    )
)

这是我用来测试的directory.txt:

https://URLstring1/playlist 2
https://URLstring2/playlist 3
https://URLstring3/playlist 4

我在每一行中使用的第一个值是 URL,第二个是部分的数量。

关于windows - wget 从具有多个部分的多个 URL 下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46459174/

相关文章:

在MinGW(使用MSYS)中为Windows 10编译GTK+-2.0程序

C - 套接字无法连接到 SMTP 服务器

c++ - crt0 是否加载 msvcrt.dll?

http - go语言如何通过http请求下载文件

Android:将文件保存到 SD 卡?

c - 在静态库中定义枚举

batch-file - 区分大小写的字符串操作

powershell - PowerShell错误处理: how to resolve if error occurs in first or middle of the script?

batch-file - 无法使用批处理文件读取txt文件内部

objective-c - 从 UIDocumentPicker 下载文件并等待下载完成