gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:32:38 25 4
gpt4 key购买 nike

新手在此提前致歉。

基本上,我正在尝试尽可能多地自动化我的流程。我希望能够下载分成不同 .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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com