我正在尝试从应用程序下载一大块文件。它的shell命令是'go filename download'。
我有一个包含我必须下载的所有文件名的文本文件。我想要做的就是运行一个脚本/命令,以便在执行上述命令时执行 1.文件名是从文本文件中获取的。使用上面的命令执行 2.跳过现有文件/不可用文件 3.然后,该过程继续执行列表中的下一个文件
到目前为止,我有使用 go $ download 等操作符的想法。然后使用包含文件名列表的文本文件向操作员提供。提前谢谢。
答案 0 :(得分:2)
对于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
以使其完成实际工作。