Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Скачивание случайного файла (http://forum.oszone.net/showthread.php?t=271308)

prib0i 04-11-2013 12:43 2247118

Скачивание случайного файла
 
Всем привет, вот у меня такая проблема

Есть ftp сервер на нем лежат файлы *.rar их Много. Пробовал скачивать через Mget Он скачивает все. А нужен 1 случайный файл.
(Кстати скачивание файла происходит не с одного компа)
Подумал что это +- можно реализовать через Mls (Этим я сохраню название всех файлов, которые имеются на сервере в каталоге)
Но как теперь сделать переменную.

Например Есть файл Name.txt (В нем LOL.zip lol2.zip lol3.zip)
Как случайную строку из Name.txt Внести в такой код

(Bat1.bat)
ftp -v -n -s:1.lst 127.0.0.1


(1.lst)
USER name pass
binary
cd dir1/
get (Наша переменная из Name.txt).zip
bye

Foreigner 04-11-2013 13:26 2247146

Цитата:

Цитата prib0i
Например Есть файл Name.txt (В нем LOL.zip lol2.zip lol3.zip) »

Имена файлов в Name.txt в одну строку? Тогда:
Код:

@echo off
setlocal enabledelayedexpansion

for /f "tokens=*" %%i in (name.txt) do (

    for %%j in (%%i) do set /a cnt+=1

)

for /l %%i in (1,1,%cnt%) do set "f_!random!=%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do set "token=%%i"
for /f "tokens=%token%" %%i in (name.txt) do set "file=%%i"

(

    echo USER name pass
    echo binary
    echo cd dir1/
    echo get %file%
    echo bye

) | ftp -v -n 127.0.0.1

Если в Name.txt по файлу на строку:
Код:

@echo off
setlocal enabledelayedexpansion

for /f "tokens=*" %%i in (name.txt) do set "f_!random!=%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do set "file=%%i"

(

    echo USER name pass
    echo binary
    echo cd dir1/
    echo get %file%
    echo bye

) | ftp -v -n 127.0.0.1


prib0i 04-11-2013 14:25 2247175

Спасибо большое!!!

Foreigner У меня есть ещё один вопрос.

Как добавить удаление файла с FTP После скачивания.

И если файла нет на FTp А в Name.txt он есть, или же файл попросту не до качался или произошла иная ошибка, то будет запущен start.bat

Заранее спасибо!!

Foreigner 04-11-2013 15:42 2247220

prib0i, наверное добавить delete:
Код:

...
echo get %file%
echo delete %file%
echo bye
...


prib0i 05-11-2013 16:10 2247933

Спасибо большое!!!


Время: 20:17.

Время: 20:17.
© OSzone.net 2001-