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

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

Автор: Lamman
Дата сообщения: 15.12.2010 17:22
Спасибо!
Вроде бы, всё понятно.
Автор: webms
Дата сообщения: 15.12.2010 21:42
Всем привет, прошу вашей помощи. Уже второй день мучаюсь и не могу решить задачу.
Нужно батником отправить файлы на другой сервер по ФТП


::батник
_______________________
c:\windows\system32\ftp -i -s:C:\bat\from_mos.ftp



::from_mos.ftp
_______________________
open ftp.server.ru
login
pasw
debug
trace
prompt
binary
quote pasv
send demo/*.dem
close
quit

файл отправляет, но он публикуется 0вым, т.е. 0 байт

где мой касяк, помогте плз
Автор: webms
Дата сообщения: 16.12.2010 09:52
а возможно еще сделать:

батник проверяет размер файла, если до 2мб то оставляет (не трогает), начинает проверять дальше, если нашел большее двух то архивирует его и удаляет оригинал (не архив), потом далее идет и тоже самое и так все файлы которые в папке
Автор: res2001
Дата сообщения: 16.12.2010 10:29
webms

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

Вот так можно:
for %%a in (*.*) do if %%~za gtr 2097152 7z u %%a.7z %%a & del /q/f %%a

Архиватор можешь на свой вкус подобрать.

А вообще в rar есть опция -sm<размер>, как раз то что тебе нужно.
Команда с этой опцией будет такая:
rar m -sm2097152 arhiv_name
только упаковывать будет все в один архив.
Автор: wolf0425
Дата сообщения: 16.12.2010 10:50

Цитата:
Вот так можно:
for %%a in (*.*) do if %%~za gtr 2097152 7z u %%a.7z %%a & del /q/f %%a
тут имеет смысл заменить & на && - ибо случай бывает разный, а удалять надо бы только после успешной запаковки.
Ну и кавычки экономить не стоит - это тоже чревато...
Автор: res2001
Дата сообщения: 16.12.2010 10:57
wolf0425
Согласен.
Странно, но в 7z, по моему, нет опции архивации с последующим удалением.
Автор: webms
Дата сообщения: 16.12.2010 11:06
я в 7z никогда не работал, как правильно запустить?

"C:\Program Files\7-Zip\7z.exe"
for %%a in (*.*) do if %%~za gtr 2097152 7z u %%a.7z %%a & del /q/f %%a
pause


чет не завелся((

пы: нужно чтоб название архива была такое же как назв. файла
Автор: res2001
Дата сообщения: 16.12.2010 11:23
webms
дык используй архиватор, с которым работал, 7z - только как один из возможных вариантов.
В том же WinRAR есть консольная версия - rar.exe
Автор: webms
Дата сообщения: 16.12.2010 11:26
пы: нужно чтоб название архива была такое же как назв. файла
в вин раре я не понял как это сделать


помогите плз, нужно решить задачу, а то надоело все ручками делать

Добавлено:
распешу всю задачу которую на данный момент выполняю ручками
надеюсь на вашу помощь (вы всегда мне помогали =))

пишется демо формата *.dem
если демо до 2 мб значит она либо пустая, либо все еще пишеться
обычный размер 50мб (в архиве 10мб)

нужно каждую демку архивировать с названием демо и отправить на веб сервер по фтп

Добавлено:
пы: cmd владею как школьник
Автор: res2001
Дата сообщения: 16.12.2010 11:38
webms

Цитата:
нужно чтоб название архива была такое же как назв. файла

В этом случае нужно создавать архив во временном каталоге, потом, после удаления файла, переносить его:
rar m "temp\aa%%" "%%a" & move "temp\%%a" .\
Автор: Rush
Дата сообщения: 16.12.2010 12:16
webms
Rar позволяет все делать своими ключами.

Код: @echo off
Echo Please wait...
for %%a in (*) do Rar a -df -ed -sm2097152 -inul "%%~na" "%%a"
Автор: webms
Дата сообщения: 16.12.2010 12:32
Rush
Это гениально..

res2001
wolf0425
Rush
Спасибо вам ОГРОМНОЕ.. Выручили.

Последнее, скажите почему при отправки по фтп батником, он отправляет нулевой файл.



Цитата:
::батник
_______________________
c:\windows\system32\ftp -i -s:C:\bat\from_mos.ftp


::from_mos.ftp
_______________________
open ftp.server.ru
login
pasw
debug
trace
prompt
binary
quote pasv
send demo/*.dem
close
quit

Автор: wolf0425
Дата сообщения: 16.12.2010 13:23

Цитата:
скажите почему при отправки по фтп батником, он отправляет нулевой файл.

наверно потому, что send умеет отправлять только один файл и тебя не понимает.

замени команду на mput
Автор: Accessor
Дата сообщения: 16.12.2010 13:24
webms
Цитата:
почему при отправки по фтп батником, он отправляет нулевой файл.

потому что надо делать примерно так
Цитата:
open ftp.server.com
user username password
binary
put filename1
put filename2
put filename3
disconnect
bye
Автор: webms
Дата сообщения: 16.12.2010 13:34

Код: open 123.123.123.123
login
pasw
binary
put serv.rar
disconnect
bye
Автор: Accessor
Дата сообщения: 16.12.2010 13:46
webms
Странно. Сейчас протестирую у себя на точно такой же конфигурации программного обеспечения.

Добавлено:
в командной строке нужен ключ -n
и вместо login и passwd надо использовать команду user <login> <password>
и всё работает
Автор: webms
Дата сообщения: 16.12.2010 14:16
open ftp.server.com
user login pass
binary
cd /27015
put serv_classic-1012160549-de_train.rar
disconnect
bye



C:\WINDOWS\system32\ftp.exe -n -s:set.txt


и все равно неработает((((((((( это ппц
3й день мучаюсь

открываю доступы, проверьте плз
Автор: res2001
Дата сообщения: 16.12.2010 14:45
webms
Проверил через FAR, файл test.txt. Вроде все нормуль, а ftp.exe валит ошибку - не может открыть data port, не понятно почему.
Автор: webms
Дата сообщения: 16.12.2010 15:10
ааа... у кого то получилось отправить файл в 1кб
как вы это сделали?))
Автор: wolf0425
Дата сообщения: 16.12.2010 15:16

Цитата:
ааа... у кого то получилось отправить файл в 1кб
как вы это сделали?))
так это ФАРом, наверно. я логи его команд смотрел...
скриптом у меня напрочь не выходит.
ещё напрочь не выходит скриптом получить листинг каталога.
Автор: Accessor
Дата сообщения: 16.12.2010 15:24
res2001
wolf0425
webms

может проблема в "passive mode"?
я сейчас не за своим компьютером - проверить не могу.
Автор: webms
Дата сообщения: 16.12.2010 15:24
я так полагаю что касяк у меня с фтп серверов, так как только что проверил на другом хостинге и все ок работает

где может скрываться проблема? как вы думаете?
Автор: wolf0425
Дата сообщения: 16.12.2010 15:29

Цитата:
может проблема в "passive mode"?

может. но я пробовал её добавить - не помогло.

webmsсервер обламывается на попытке получить/отправить любые данные (команды проходят нормально, сервер их кушает, и на попытку что-то по результату выполнения отправить/принять - ругается)

при всем этом ФАР замечательно всё передает/принимает... чудеса.
Автор: igor_andreev
Дата сообщения: 16.12.2010 16:25

Цитата:
может проблема в "passive mode"?

Именно в нем.

webms
http://gallery.ru-board.com/topic.cgi?forum=62&topic=19668&start=2080#8
В скрипт для ftps.exe добавь команду passive
Автор: webms
Дата сообщения: 16.12.2010 16:38
ааааааааааааааааааааа.... спасибо igor_andreev
Спасибо ВСЕМ ОГРОМНОЕ... ПРОБЛЕМЫ РЕШЕНЫ!! С НАСТУПАЮЩИМ НОВЫМ ГОДОМ!

Кстати, для себя, если не затруднит (всегда хотел знать) как через xcopy брать файлы только те что большее 1мб например
Автор: Accessor
Дата сообщения: 16.12.2010 16:40
webms
Цитата:
я так полагаю что касяк у меня с фтп
Нет, если был косяк с сервером, то тогда не работало бы ни через Far, ни через Total Coomander. А так оно работает. Я только что попробовал.
Можешь ещё попробовать с помощью wget.exe или ncftp. Любопытно будет узнать результат.
Автор: wolf0425
Дата сообщения: 16.12.2010 16:43

Цитата:
как через xcopy брать файлы только те что большее 1мб
никак.
так что или используй forfiles (и копируй результаты поодиночке) или просто сам проверяй размер для каждого файла, из for...

а с пассивом там затейливо было - сервер на команду PASV через обычный ftp.exe успешно рапортовал о переходе в пассивный режим, но это никак не помогало с передачей данных...
Автор: webms
Дата сообщения: 16.12.2010 16:54
вопрос на засыпку, я командой в скрипте prompt off убрал вопрос о перезаписи, но он все равно сверху заливает этот же файл, можно сделать чтоб он пропустил его?
Автор: lorents
Дата сообщения: 16.12.2010 22:55
Добрый вечер!
Подскажите, пожалуйста

Код: :loop1
echo.
set png=
echo Параметр оптимизации PNG:
echo.
echo Non-interlaced:
echo [1] Xtreme    [2] Intense    [3] Fast
echo.
echo Interlaced:
echo [4] Xtreme    [5] Intense
echo.
echo Default:
echo [6] Xtreme    [7] Intense    [8] Fast
echo.
echo Если Вы не хотите оптимизировать изображения формата PNG, то нажмите на Enter.
echo.
set /p png="Укажите параметр оптимизации PNG и нажмите на Enter: "
echo.
if defined png if "%png%" neq "1" if "%png%" neq "2" if "%png%" neq "3" if "%png%" neq "4" if "%png%" neq "5" if "%png%" neq "6" if "%png%" neq "7" if "%png%" neq "8" (
echo Вы указали неправильное значение параметра оптимизации картинок. && goto:loop1
)
if not defined png set png=100
Автор: vbrv
Дата сообщения: 17.12.2010 02:53

Код:
for /L %%i in (0,20,100) do (
set /a j=%%i+20
echo %%i %j%
)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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