Batch file Windows-wget使用--background和-O
我的批处理命令行有问题,这是:Batch file Windows-wget使用--background和-O,batch-file,output,wget,Batch File,Output,Wget,我的批处理命令行有问题,这是: for /l %%X in (1, 1, 100) do wget --background -q --no-check-certificate -O ->>donnees_wget "https://aaaa/%%X" “->>”允许将所有下载内容附加到一个文件中 我不能同时使用背景(--background)和保存在输出(-O)文件中,我不明白这一点。 我的错误消息是“processus无法访问该文件,因为它被另一个processus使
for /l %%X in (1, 1, 100) do wget --background -q --no-check-certificate -O ->>donnees_wget "https://aaaa/%%X"
“->>”允许将所有下载内容附加到一个文件中
我不能同时使用背景(--background)和保存在输出(-O)文件中,我不明白这一点。
我的错误消息是“processus无法访问该文件,因为它被另一个processus使用”
有人知道这个问题吗
非常感谢
不是由wget处理的,而是由cmd处理的。每次启动wget进程时,都会要求cmd将此命令的输出发送到该文件,但不能让两个进程同时将其输出重定向到同一文件(不是批处理脚本)
所以,唯一的方法就是只启动wget的一个实例,它将进入后台进行工作,将所有输出添加到同一个文件中
要实现这一点,您需要生成一个临时文件,用于存储wget要处理的url
@echo off
set "tempFile=%temp%\wgetTest"
(for /l %%X in (1 1 5) do (
echo(https://aaaa/%%X
))>"%tempFile%"
wget -i "%tempFile%" --background --no-check-certificate -o wget.log -O donnees_wget
如果不使用--background(它将wget进程从控制台分离),而不是生成临时文件,则可以使用-
(stdin)作为要从中检索URL的文件,将生成的列表通过管道传送到wget中
@echo off
set "tempFile=%temp%\wgetTest"
(for /l %%X in (1 1 5) do (
echo(https://aaaa/%%X
)) | wget -i - --no-check-certificate -o wget.log -O donnees_wget
非常感谢你的回答!我想后台会允许我同时发出多个请求,如果在批处理文件中不可能,后台的用途是什么?我想告诉一个朋友windows可以和Mac一样快,你有什么办法提高我的下载速度吗?我想到了Curl函数,它似乎更快。@user3137701,您可以在批处理文件中使用
--background
。您不能让多个wget实例同时将其输出写入同一个文件,无论是在windows还是mac中。wget和curl是为解决不同问题而设计的工具。如果您需要的是wget中的速度和功能,那么您可能需要的是HTTTrack(GUI和CLI)。