Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9

Модерирует : KLASS, IFkO

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 9
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7, часть 8)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Lamman

    Цитата:
    Почему %%count%% а не %counnt%?..


    Цитата:
    И что означает call ren?.. Это же вызов сценария... но ren - вроде бы не сценарий... То есть можно запускать call'ом отдельные команды... зачем?.. Что бы передать им параметры?.. Но они и так их получат, вроде бы.
    Зачем тогда?..  

    %%count%% в связке с call - это способ уйти от использования оператора SetLocal EnableDelayedExpansion и "!" для обращения к переменным в теле цикла.
    В твоем случае это в общем то не критично, можно и не обходить, но бывают моменты когда использование SetLocal EnableDelayedExpansion не желательно.
     
    Добавлено:
    callом можно не только сценарии вызывать, в принципе все что хочешь наверное, в т.ч. подпрограммы, находящиеся в этом же батнике: call :sub <parameters>

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:49 15-12-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Не вполне понятен, правда, синтаксис...
    Почему %%count%% а не %counnt%?..

    потому что %counnt% был бы заменен на значение переменной в момент старта цикла, а у %%count%% в тот момент только произойдет замена %% на %, а подстановка переменной произойдет только после call
    так что это просто финт для неписания setlocal enabledelayedexpansion и неперехода на !count!, как выше замечено.
     

    Код:
    Это что, как бы "именем файла будет переменная от переменной"?..
    нет

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:38 15-12-2010 | Исправлено: wolf0425, 14:40 15-12-2010
    emfs

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно решение по отправке почты с шифрованием с консоли, вроде pgp.
    Посмотрел на blat и zerat, не нашёл таких опций у них.
    Пока наметил сделать через "мышь", но может ещё вариант есть?

    Всего записей: 900 | Зарегистр. 09-07-2007 | Отправлено: 14:56 15-12-2010
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    emfs
    А чем плох консольный PGP и отправка Блатом ???

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 15:18 15-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Accessor
    Видимо нужно шифровать непосредственно письма, а не только вложенные файлы.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:52 15-12-2010
    Lamman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо!
    Вроде бы, всё понятно.

    Всего записей: 22 | Зарегистр. 23-04-2010 | Отправлено: 18:22 15-12-2010
    webms

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет, прошу вашей помощи. Уже второй день мучаюсь и не могу решить задачу.
    Нужно батником отправить файлы на другой сервер по ФТП
     
     
    ::батник
    _______________________
    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 байт
     
    где мой касяк, помогте плз

    Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 22:42 15-12-2010
    webms

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

    Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 10:52 16-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    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
    только упаковывать будет все в один архив.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:29 16-12-2010 | Исправлено: res2001, 11:34 16-12-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Вот так можно:
    for %%a in (*.*) do if %%~za gtr 2097152 7z u %%a.7z %%a & del /q/f %%a  
    тут имеет смысл заменить & на && - ибо случай бывает разный, а удалять надо бы только после успешной запаковки.
    Ну и  кавычки экономить не стоит - это тоже чревато...

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 11:50 16-12-2010 | Исправлено: wolf0425, 11:51 16-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    Согласен.
    Странно, но в 7z, по моему, нет опции архивации с последующим удалением.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:57 16-12-2010
    webms

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я в 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
     
     
    чет не завелся((
     
    пы: нужно чтоб название архива была такое же как назв. файла

    Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 12:06 16-12-2010 | Исправлено: webms, 12:22 16-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    webms
    дык используй архиватор, с которым работал, 7z - только как один из возможных вариантов.
    В том же WinRAR есть консольная версия - rar.exe

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:23 16-12-2010
    webms

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пы: нужно чтоб название архива была такое же как назв. файла
    в вин раре я не понял как это сделать
     
     
    помогите плз, нужно решить задачу, а то надоело все ручками делать
     
    Добавлено:
    распешу всю задачу которую на данный момент выполняю ручками
    надеюсь на вашу помощь (вы всегда мне помогали =))
     
    пишется демо формата *.dem  
    если демо до 2 мб значит она либо пустая, либо все еще пишеться
    обычный размер 50мб (в архиве 10мб)
     
    нужно каждую демку архивировать с названием демо и отправить на веб сервер по фтп
     
    Добавлено:
    пы: cmd владею как школьник

    Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 12:26 16-12-2010 | Исправлено: webms, 12:37 16-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    webms

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

    В этом случае нужно создавать архив во временном каталоге, потом, после удаления файла, переносить его:
    rar m "temp\aa%%" "%%a" & move "temp\%%a" .\

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:38 16-12-2010
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    webms
    Rar позволяет все делать своими ключами.

    Код:
    @echo off
    Echo Please wait...
    for %%a in (*) do Rar a -df -ed -sm2097152 -inul "%%~na" "%%a"

    Здесь создается для каждого файла >2 МБ свой архив формата - имя_архивируемого_файла.rar, неупакованный файл удаляется.

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:16 16-12-2010
    webms

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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  


    Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 13:32 16-12-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:23 16-12-2010
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    webms
    Цитата:
    почему при отправки по фтп батником, он отправляет нулевой файл.  

    потому что надо делать примерно так
    Цитата:
    open ftp.server.com
    user username password
    binary
    put filename1
    put filename2
    put filename3
    disconnect
    bye
     

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 14:24 16-12-2010
    webms

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Код:
    open 123.123.123.123
    login
    pasw
    binary
    put serv.rar
    disconnect
    bye  
     

     
     
    приходит файл нулевого размера  
    ps: фтп сервер стоит G6FTP Server Administrator windows2003
     
    мне кажется нужно что то вбить в cmd чтоб можно было отправлять файлы..  
     

    Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 14:34 16-12-2010 | Исправлено: webms, 14:40 16-12-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru