Elroir

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору metrim Цитата: На первый взгляд - генерируется временный файл из которого потом вычищются наличествующие файлы/ссылки? | Да, именно так. Сначала создается файл со всеми возможными ссылками (all_range.txt), потом создается файл с тем, что уже есть на диске (local.txt), а потом в файл download.txt записываются все ссылки из первого файла, которые не содержат названий файлов из pre.txt и из local.txt. Цитата: Код: @echo off setlocal enabledelayedexpansion :: Вносим в переменную то, что было передано аргументом ком. строки set "start=%~1" :: Определяем вспомогательную переменную для подсчета кол-ва ведущих нулей set "position=0" :: В следующем блоке, находим количество ведущих нулей и :: определяем переменную prefix с этими нулями :find_prefix if "!start:~%position%,1!"=="0" ( set "prefix=!prefix!0" set /a "position+=1" goto :find_prefix ) :: в переменную "_start" записываем начальный индекс без ведущий нулей set "_start=!start:~%position%!" :: в переменную "_end" записываем конечный индекс set /a "_end=_start+100000" :: стираем файл "all_range.txt" (если он существует) и создаем его заново - со всеми возможными ссылками del /q all_range.txt 2>nul & for /l %%a in (%_start%,1,%_end%) do ( :: прибавляем ведущие нули к индексу set "whole_number=%prefix%%%a" :: записываем полную ссылку в файл echo http://domen/!whole_number:~0,4!/!whole_number:~4,2!/!whole_number!.file>>all_range.txt ) :: стираем файл "local.txt" (если он существует) и создаем его заново - со всеми уже существующими файлами del /q local.txt 2>nul & for /f "tokens=*" %%a in ('dir /b "C:\Temp\Downloaded\*.file"') do echo %%~nxa>>local.txt :: фильтруем all_range.txt type all_range.txt | findstr /v /g:pre.txt | findstr /v /g:local.txt>download.txt del /q all_range.txt 2>nul del /q local.txt 2>nul |
---------- "В интернете есть все, но не всегда" |
|