gpt4 book ai didi

loops - 如何批量创建循环/跳过

转载 作者:行者123 更新时间:2023-12-03 08:16:08 27 4
gpt4 key购买 nike

我正在尝试从应用程序下载一大堆文件。它的shell命令是“下载文件名”。

我有一个文本文件,其中包含必须下载的所有文件名。我要做的就是运行一个脚本/命令,以便在执行上述命令时
1.从文本文件中提取文件名并使用上述命令执行
2.现有文件/不可用文件被跳过
3.然后,该过程将继续处理列表中的下一个文件

到目前为止,我已经有了使用go $ download之类的运算符的想法,然后向该运算符提供包含文件名列表的文本文件。提前致谢。

最佳答案

对于Windows,您可以使用for /f处理文件并从中创建命令。以下脚本supergo.cmd显示了如何完成此操作:

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "delims=" %%f in (list.txt) do (
echo go "%%f" download
)
endlocal

以下记录显示了它的运行情况:
C:\Pax> type list.txt
file1.txt
file number 2.txt
another file.jpg

C:\Pax> supergo
go "file1.txt" download
go "file number 2.txt" download
go "another file.jpg" download

如果您使用的是像 bash这样的shell,则可以使用 sed从输入文件中创建一个临时脚本,然后运行该脚本:
#!/bin/bash
sed -e "s/^/echo go '/" -e "s/$/' download/" list.txt >/tmp/tempexec.$$
chmod u+x /tmp/tempexec.$$
. /tmp/tempexec.$$
rm -rf /tmp/tempexec.$$

这会在每行的开头放置一个 echo go ',在最后一行放置一个 ' download,然后将其标记为可执行并执行。

在这两种情况下(Windows和 bash),都删除 echo以使其完成实际工作。

关于loops - 如何批量创建循环/跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930180/

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