對於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
,你可以使用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
以使其完成實際工作。
怎麼樣的情況下,文件丟失或已經被下載。我怎樣才能跳過/處理這樣的錯誤,因爲上次我做了類似於你所說的,當它面臨一些問題時就終止了。 – deppfx 2011-02-08 06:50:11