Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 10

Автор: VitGT
Дата сообщения: 12.07.2011 01:33
Здравствуйте, как реализовать такой батник чтобы перейдя по ссылке http://releases.mozilla.org/pub/mozilla.org/addons/1865/ скачивался последний добавленный файл?
Вот чтото сам набросал, но он скачивает тупо по имени файл

Код: @ECHO OFF
COLOR 1F
CLS
echo OPEN releases.mozilla.org>MYFTP.txt
echo ANONYMOUS>>MYFTP.txt
echo 123>>MYFTP.txt
echo BELL>>MYFTP.txt
echo CD pub>>MYFTP.txt
echo CD mozilla.org>>MYFTP.txt
echo CD addons>>MYFTP.txt
echo CD 1865>>MYFTP.txt
echo binary>>MYFTP.txt
echo get "adblock_plus-1.3.9-fx+tb+sm+fn.xpi">>MYFTP.txt
echo quit>>MYFTP.txt
ftp -s:myftp.txt
del myftp.txt
ping -n 3 localhost>Nul
Автор: wolf0425
Дата сообщения: 12.07.2011 07:46
VitGT

Код: @echo off
for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/1865/ -O - ^| sed -n -r "s;^.*a href=\x22(adblock[^\x22]*)\x22.*$;\1;igp" ') do set "filename=%%a"
wget http://releases.mozilla.org/pub/mozilla.org/addons/1865/%filename%
Автор: VitGT
Дата сообщения: 12.07.2011 08:30
wolf0425
У меня почему то вместо нужного файла скачивается файл index.html.
Хотелось бы всё это реализовать без сторонних утилит.
И еще, если можно, добавить пару действий, таких как, при скачивании новых файлов чтобы удалялись старые, а если новых файлов нет на сервере то скачивание не происходило
Автор: wolf0425
Дата сообщения: 12.07.2011 09:50

Цитата:
У меня почему то вместо нужного файла скачивается файл index.html
это тебе так не повезло - на запрос http://releases.mozilla.org/pub/mozilla.org/addons/1865/ ответил не тот сервер, который отвечал мне при тестировании.
поправил.


Цитата:
Хотелось бы всё это реализовать без сторонних утилит.
да я не против, реализуй
в принципе, вариант скачки по ftp действительно можно сделать целиком на встроенных утилитах виндов.
Только вот размером он будет не в две строки, а в пару экранов и писать его можно только при наличии интереса.
Так что если заняться нечем - открываешь версию для печати, ищешь по ней примеры скриптов ftp: чтение каталога, разбор листинга и скачка нужного файла - по частям точно где-то уже были.


Цитата:
И еще, если можно, добавить пару действий, таких как, при скачивании новых файлов чтобы удалялись старые, а если новых файлов нет на сервере то скачивание не происходило
это можно, первый фикс тоже включен.

Код: @echo off
for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/1865/ -O - ^| sed -n -r "s;^.*a href=\x22(adblock[^\x22]*)\x22.*$;\1;igp" ') do set "filename=%%a"
if "%filename%" neq "" if not exist "%filename%" wget http://releases.mozilla.org/pub/mozilla.org/addons/1865/%filename%
for /f "skip=1 delims=" %%a in (' dir /b /o-n "adblock_plus*.xpi" ') do del /q "%%~a
Автор: VitGT
Дата сообщения: 12.07.2011 12:51

Цитата:
это тебе так не повезло - на запрос http://releases.mozilla.org/pub/mozilla.org/addons/1865/ ответил не тот сервер, который отвечал мне при тестировании.
поправил.

Странно как то, уже десятый раз запускаю батник, а оно мне уже не заменяет файл index.html, а добавляет такой же только с другим именем index.html.1, index.html.2, index.html.3, index.html.4 и т.д. когда же мне повезет


Цитата:
да я не против, реализуй

Обязательно найду время и реализую такой скриптик

Цитата:
это можно, первый фикс тоже включен.

Толи с кодом чтото не то или с сервером
Автор: wolf0425
Дата сообщения: 12.07.2011 18:14
VitGT
Цитата:
Толи с кодом чтото не то или с сервером

а прочитать первую строчку своего принтскрина - ты самостоятельно совсем никак не мог?
У тебя батник не находит sed.exe.


проверку на ненахождение в первой закачке подходящей ссылки - добавил.
Автор: VitGT
Дата сообщения: 12.07.2011 20:47

Цитата:
а прочитать первую строчку своего принтскрина - ты самостоятельно совсем никак не мог?
У тебя батник не находит sed.exe.

Уже прочитал, не заметил просто, всё работает, спасибо
Но есть еще проблемы, когда скачиваю несколько дополнений некоторые попадаются старые версии, например должно качать download_statusbar-0.9.8-fx.xpi, а оно качает то что в конце строки такой файл download statusbar-0.9.4.6-firefox.xpi, тоже самое и с tab_mix_plus-0.3.8.6-fx.xpi вместо него качается tab_mix_plus-0.3.8.6pre.110303a-fx.xpi
И еще если можна последнее, если такое возможно, хотелось что бы ссылки по которым скачивалось дополнение помещались в отдельном текстовом файле и от туда же считывались, так я думаю удобнее будет чем в батнике прописывать каждый раз.
Вот такие ссылки будут например в addons.txt

Код: http://releases.mozilla.org/pub/mozilla.org/addons/1865/
http://releases.mozilla.org/pub/mozilla.org/addons/26/
http://releases.mozilla.org/pub/mozilla.org/addons/1122/
http://releases.mozilla.org/pub/mozilla.org/addons/3006/
http://releases.mozilla.org/pub/mozilla.org/addons/1843/
http://releases.mozilla.org/pub/mozilla.org/addons/748/
...
Автор: wolf0425
Дата сообщения: 12.07.2011 21:01

Цитата:
Вот с этими дополнениями проблемы, скачиваются старые версии
там ссылка на последнюю версию - почему-то не последняя на странице. и лишний мусор перед ссылкой. сортируем сами и дорабатываем.


Код: for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/26/ -O - ^| sed -n -r "s;^.*href=\x22([^\x22]*\.xpi)\x22.*$;\1;igp" ^| sort ') do set "filename=%%a"
wget http://releases.mozilla.org/pub/mozilla.org/addons/26/%filename%
Автор: Sphinx114
Дата сообщения: 13.07.2011 22:31
Заранее извиняюсь за тупость, но... Как максимально короткой командой удалить файл с любым атрибутом. Или это только так:

Код: del file /a:r & del file /a:a & del file /a:s & del file /a:h
Автор: 01MDM
Дата сообщения: 14.07.2011 05:30
del /a /f file
Автор: mouser
Дата сообщения: 14.07.2011 10:03
забыл как отрисовать имя файла без расширения

напомните плз

echo %file%
Автор: wolf0425
Дата сообщения: 14.07.2011 10:25
mouser for %%a in ( "%file%") do echo %%~na

ну или аналогично через call, а не через for
Автор: mouser
Дата сообщения: 14.07.2011 11:11
в папке NEW 3 файла но почему последний за дваивается ????


Код: @echo off
cls
cd NEW
For %%a In (*.jar) DO SET FILE=%%a&call :GET
:GET
echo %FILE%
Автор: smirnvlad
Дата сообщения: 14.07.2011 12:10
mouser

Цитата:
почему последний за дваивается

потому что после завершения for продолжается выполнение скрипта и ещё один echo %FILE% задваивает последний файл
перед :GET добавить exit или goto:EOF
Автор: zherebcov
Дата сообщения: 15.07.2011 16:13
Добрый день!
не подскажите, как получить "код экземпляра устройства" через батник.
Конкретно нужен "код экземпляра устройства" flesh накопителей.
Автор: NIKZZZZ
Дата сообщения: 15.07.2011 19:01
zherebcov

Цитата:
как получить "код экземпляра устройства" через батник.


Код: set drive=c:
FOR /F "skip=1 tokens=2 delims=:" %%i IN ('vol %drive%') DO Set "UUID=%%i"
Set "UUID=%UUID: =%"
echo %UUID%
Автор: Kai
Дата сообщения: 16.07.2011 14:02
Подскажите, пожалуйста, как проще всего получить системный путь С:\Documents and Settings\All Users\Application Data\ в WinXP или C:\ProgramData\ в Win7. Через REG / WMIC / RUNDLL32 или что-то ещё? И как именно?
Автор: AlexeyFX
Дата сообщения: 16.07.2011 14:44
Здравствуйте, как автоматически закрыть произвольное приложение по истечению определённого кол-ва времени, например - закрытие браузера через 2 часа после запуска bat файла?
Автор: 5peciali5t
Дата сообщения: 16.07.2011 14:54
добрый день местным гуру!

есть каталог (1 уровень) с другими вложенными каталогами (2 уровень), в каждом из которых есть один исполняемый файл установщика и командный файл для его автоматической установки. файлы установщиков будут периодически обновляться, соответственно с большой вероятностью будут меняться имена установщиков.
в командном файле (silent.cmd) следующий код:

Код: @echo off
echo Skype
For %%a In (*.exe) DO SET "setup=%%a"
"%setup%" /VERYSILENT /NOLAUNCH /LANG=ru
exit
Автор: lemor
Дата сообщения: 16.07.2011 23:33
пожалуйста помогите нписать bat-ник:
нужно найти в текстовом файле слово мастер и вставить после него Иванов,
затем найти слово электрик и вставить после него Сидоров,
затем найти слово участок и вставить после него 64


Автор: wolf0425
Дата сообщения: 17.07.2011 08:56
lemor

Код: @echo off
chcp 1251
sed -r -i "s;(мастер);\1 Иванов;gi" fff
Автор: lemor
Дата сообщения: 17.07.2011 11:13
wolf0425

Цитата:
@echo off
chcp 1251
sed -r -i "s;(мастер);\1 Иванов;gi" fff

Спасибо вам.
Автор: lorents
Дата сообщения: 17.07.2011 13:28
Добрый день!
Подскажите, где здесь ошибка?

Код: if /i "%tf%" equ "true" >nul chcp 1251 & >>%logfile% echo.%~1;%2;%~z1;%change%;%perc% & >nul chcp 866
Автор: Elroir
Дата сообщения: 17.07.2011 16:10
lorents
Попробуй расставить скобки:

Код:
if /i "%tf%" equ "true" ((>nul chcp 1251) & (>>%logfile% echo.%~1;%2;%~z1;%change%;%perc%) & (>nul chcp 866))
Автор: lorents
Дата сообщения: 17.07.2011 17:47
Elroir
попробовал, все равно не работает, точнее на работает >nul chcp 1251 и >nul chcp 866
Автор: Free_Soft
Дата сообщения: 17.07.2011 18:39
lorents
ну а если так:

Код: chcp 1251 >nul и chcp 866 >nul
Автор: lorents
Дата сообщения: 17.07.2011 21:06
Free_Soft
Результат тот же, ладно оставлю как есть, просто странно почему не работает.
Автор: lemor
Дата сообщения: 17.07.2011 21:39

Цитата:
пожалуйста помогите нписать bat-ник:
нужно найти в текстовом файле слово мастер и вставить после него Иванов,
затем найти слово электрик и вставить после него Сидоров,
затем найти слово участок и вставить после него 64


Цитата:
@echo off
chcp 1251
sed -r -i "s;(мастер);\1 Иванов;gi" fff

sed -r -i "s;(мастер);\1 Иванов;gi" file.txt
sed.exe ищешь в швпук или в гугле


А средствами windows (без сторонних програм) можно?
надо что-бы на любом копьютере работало.
Автор: Cosmogor
Дата сообщения: 17.07.2011 23:19
lemor, без сторонних утилит очень сложно текст парсить.
Вот, попробуй так.

Код:

echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> %temp%.\sbs2.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> %temp%.\sbs2.com
echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> %temp%.\sbs2.com
echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> %temp%.\sbs2.com
echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> %temp%.\sbs2.com
echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> %temp%.\sbs2.com
echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> %temp%.\sbs2.com
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> %temp%.\sbs2.com
echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> %temp%.\sbs2.com
echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> %temp%.\sbs2.com
echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> %temp%.\sbs2.com

%temp%.\sbs2.com 0 "мастер" "мастер: Иванов" < "input.txt" > "2.txt"
%temp%.\sbs2.com 0 "электрик" "электрик: Сидоров" < "2.txt" > "3.txt"
%temp%.\sbs2.com 0 "участок" "участок: 64" < "3.txt" > "onput.txt"
del "2.txt" "3.txt" "%temp%.\sbs2.com"


Удаляет кавычки.
%temp%.\sbs2.com 0 "$22" "кавычки" < "1.txt" > "2.txt"
Быстро удалить все пустые строки
%temp%.\sbs2.com 0 "$0d$0a$0d$0a" "" < "1.txt" > "2.txt"

Автор: BOBAT
Дата сообщения: 18.07.2011 14:17
Как прописать путь к ткущему пользователю в папку %Users%/%Currentuser%\ ?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.