Главная
Форумы
Новые сообщения
Поиск сообщений
Что нового?
Новые сообщения
Новые ресурсы
Последняя активность
Ресурсы
Последние отзывы
Поиск ресурсов
Помощь форуму
ЧатTG
Вход
Регистрация
Что нового?
Поиск
Поиск
Искать только в заголовках
От:
Новые сообщения
Поиск сообщений
Меню
Вход
Регистрация
Приложение
Установить
Форумы
Форум программистов
Пакетные файлы CMD, BAT
Работа циклов (нужны разъяснения)
JavaScript отключён. Чтобы полноценно использовать наш сайт, включите JavaScript в своём браузере.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать
другой
.
Ответить в теме
Сообщение
[QUOTE="Dragokas, post: 233286, member: 6966"] По параметрам wget можно почитать встроенную справку. [code] wget --help [/code] По большей части там большинство ключей для надежности. Единственное: -O- - это принудительный вывод скаченного соедржимого на экран консоли вместо файла. По циклам. Начну со средины: [code=batch] for /f "tokens=4 delims=/" %%b in ("%%a") do set "url=%%b" [/code] В переменной %%a будет хранится http-адрес. В данном случае: hxxp://beta.unity3d.com/download/[B]2fb591d65635[/B]/Windows64EditorInstaller/UnitySetup64-5.3.5p5.exe Мы подставляем эту строку для обработки парсером цикла, чтобы выделить жирную часть. Делить будем по знакам /. Каждая разделённая часть называется [B]токеном[/B]. В результате получится: Токен_1//Токен_2/Токен_3/[B]Токен_4[/B]/Токен_5/Токен_6 Если сравнить эту строку со строкой выше, то всё будет понятно. Т.е. мы вручную сосчитали, какой номер токена нам нужен. [B]2fb591d65635 [/B]находится под номером[B] 4.[/B] Составляем сам цикл: [code=batch] for /f "tokens=4 delims=/" %%b in ("%%a") do set "url=%%b" [/code] Здесь всё тоже самое. Указали номер извлекаемого токена: [B]tokens=4[/B] Разделитель: [B]delims=/[/B] Указали букву, в которую будет попадать 4-й токен: [B]%%b[/B] (букву a нельзя т.к. она уже занята первым циклом). Дальше присваиваем глобальной переменной батника результат: [B][URL='http://www.ss64.com/nt/set.html']set[/URL] url=%%b[/B] ___________________________________ 1-й цикл: Там всё тоже самое: [code=batch] for /f UseBackQ^ tokens^=2^ delims^=^" %%a in (`%command% ^| find /i "%bit%" ^| find /i "%ver%"`) do ( [/code] Можно было проще написать: [code=batch] for /f tokens^=2^ delims^=^" %%a in ('%command% ^| find /i "%bit%" ^| find /i "%ver%"') do ( [/code] Только синтаксис немного отличается из-за того, что разделитель - кавычка " Приходится таким вот странным образом экранировать птичкой ^ часть символов. В отличие от цикла № 2 здесь мы сперва выполняем команду, а парсим уже результат от нее. Как это понимает цикл? - По виду кавычек внутри скобок. См.: ... ("строка") do - произойдёт парсинг строки ... ('команда') do - произойдет парсинг результата от выполнения команды всё доступно в справке по команде for [code=batch] for /? [/code] [code=batch] %command% ^| find /i "%bit%" ^| find /i "%ver%" [/code] Здесь птички ^ обязательны, т.к. спецсимволы внутри скобок цикла нужно экранировать, чтобы батник воспринял их как строковой литерал, а не настоящий спецсимвол. %command% - раскрывается переменная с командой и выполняется wget, его результат передается к find. Она выводит только строки с нужной битностью, передает к очередному фильтру find. Он отсекает еще больше строк - только конкретную версию. Результат обрабатывается парсером цикла по тем же правилам, что и в цикле № 2. [URL='http://www.ss64.com/nt/goto.html']goto[/URL] end - досрочный выход из цикла (т.е. чтение только первой строки вывода команды). [/QUOTE]
Вставить цитаты...
Проверка
Ответить
Форумы
Форум программистов
Пакетные файлы CMD, BAT
Работа циклов (нужны разъяснения)
Сверху
Снизу