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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    hobbit063

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Да, в итоге все в батник засуну.

    Всего записей: 15 | Зарегистр. 06-08-2007 | Отправлено: 15:05 16-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    hobbit063
    Делай так, батник формируй динамически

    Код:
     
    @Echo Off
    Echo open ftp.server.ru>sftp.txt
    ....
    echo mkdir %date%>>sftp.txt
     
    ftp <sftp.txt
     

    т.е. один батник формирует список комад для ftp и потом передает их самому ftp

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:18 16-08-2007
    hobbit063

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Батник работает у меня нормально, проблема только в создании папки.  
    Я пока что не через батник пытаюсь создать, для того что бы отследить где ошибка.  
    Когда набирию "echo mkdir %date%" выдает  "Invalid command".

    Всего записей: 15 | Зарегистр. 06-08-2007 | Отправлено: 15:31 16-08-2007
    01MDM



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

    Цитата:
    но я же хочу чтобы автоматически при загрузке синхорнизировалось...

     
    Я это и имею ввиду. Но загружай его при входе в систему, а не во время ее загрузки. А лучше добавь в расписание.  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:35 16-08-2007
    KapralBel



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

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:38 16-08-2007
    NIKZZZZ



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

    Цитата:
    Когда набирию "echo mkdir %date%" выдает  "Invalid command".

    Echo - встроенная команда, работает только под cmd.exe

    Код:
    cmd.exe /c echo mkdir %date%

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:42 16-08-2007
    hobbit063

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я пока что не с батником работаю, батник у меня нормально заливает на ftp.
    OPEN ftp.server.ru
    имя
    пароль
    CD /*/
    а дальше мне надо создать папку...
    ....
     
     

    Всего записей: 15 | Зарегистр. 06-08-2007 | Отправлено: 15:48 16-08-2007 | Исправлено: hobbit063, 15:48 16-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    hobbit063
    это текстовый файл который ты скармливаешь ftp
    я же писал выше
     

    Код:
    @Echo Off
    Echo open ftp.server.ru>sftp.txt
    Echo имя>>sftp.txt
    Echo пароль>>sftp.txt
    echo CD /pub/>>sftp.txt
    echo mkdir %date%>>sftp.txt
    ftp <sftp.txt

    Будет сформирован файл sftp.txt
    со следующим содержанием

    Код:
    open ftp.server.ru
    имя
    пароль
    CD /pub/
    mkdir 16.08.2007
     

    и вот его и будет исполнять ftp.exe

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:04 16-08-2007
    hobbit063

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

    Код:
    @echo Off
    echo open ftp.server.ru>sftp.txt
    echo имя>>sftp.txt
    echo пароль>>sftp.txt
    echo literal OPTS UTF8 ON>>sftp.txt
    echo literal TYPE I>>sftp.txt
    echo literal PASV>>sftp.txt
    echo LCD *:\*>>sftp.txt
    echo CD /*/*>>sftp.txt
    echo mkdir %date%>>sftp.txt
    echo CD /*/*/%date%>>sftp.txt
    echo put *:\*\*>>sftp.txt
    ftp<sftp.txt

     
    Возникла следующая проблема =>
    У меня просит пароль, сразу после "echo имя>>sftp.txt". Когда уже выполняется в ftp. После ввода пароля продолжается выполнятся батник коректно.

    Всего записей: 15 | Зарегистр. 06-08-2007 | Отправлено: 16:40 16-08-2007 | Исправлено: hobbit063, 16:45 16-08-2007
    vserd

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    hobbit063
    попробуйте указать так имя:napоль@ftp.server.ru
     

    Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 16:58 16-08-2007
    hobbit063

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не помогло, говорит "Unknown host".

    Всего записей: 15 | Зарегистр. 06-08-2007 | Отправлено: 17:05 16-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    hobbit063
    ftp -s:sftp.txt

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:06 16-08-2007
    paveltr



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
     
    Сваял такой батник (с целью выяснения свободного места на диске и выкидывания пользователю сообщения если свободно меньше 1Гб):

    Код:
    echo %date% - %time% : start
    dir "c:\" /-c > "%~dp0dir.txt"
    for /f "skip=1 tokens=4 delims= " %%f in ('find /n "bytes free" "%~dp0dir.txt"') do if %%f LSS 1073741824 (net send administrator CHECK FREE SPACE^! drive c: %%f bytes free^!  > nul) else (echo %date%, %time% : drive %1 %%f bytes free, message not sent)
    if exist "%~dp0dir.txt" del /q "%~dp0dir.txt"
    echo %date% - %time% : finish
    exit

    Но вот в чём проблема: сейчас на диске свободно чуть больше 4 Гб, для проверки вместо LSS 1073741824 написал LSS 5368709120 (т.е. порог - 5 Гб), но всё равно ни фига не выкидывает.
    Запускал батник с выводом лога в файл, на проверке условия написано: if 4494696448 LSS 5368709120 ..., ну и т.д., то есть вроде бы все цифры верные, но вместо выкидывания сообщения БАТник пишет message not sent (условие отрабатывается некорректно?).
     
    Пожалуйста, подскажите где туплю

    Всего записей: 18 | Зарегистр. 01-04-2006 | Отправлено: 19:04 16-08-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    paveltr
    Как не так давно писал Elroir, самое большое число, что воспринимает батник - это 2147483647
     
    Твои тестовые числа выходят за этот диапазон, потому и не работает.

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 19:38 16-08-2007
    paveltr



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я уже за голову хватаюсь! Интересно, что в документации нигде подобного не написано... Попробую забить место до 2 Гб и прогнать так
     
    Спасибо за ответ!

    Всего записей: 18 | Зарегистр. 01-04-2006 | Отправлено: 20:03 16-08-2007
    Tipulatoid



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

    Цитата:
    Попробую забить место до 2 Гб и прогнать так

    Все равно не получится, т.к. свободного места у тебя, как говоришь, 4494696448, что больше допустимого диапазона. По идее, нужно юзать команду или консольную прогу, что сообщит свободное место не в байтах, а в кило- или мегабайтах - тогда все будет ОК. Только тут я не знаю, что именно тебе посоветовать.  
     
    [b]Добавлено: [\b]
    Не сразу правильно понял твой пост - если заполнишь диск, так, что останется меньше 2 Гб - то должен работать, конечно.  
     
    [b] Еще Добавлено: [\b]
    Да, и замечание по коду: зачем создавать лишний темповый файл и потом его потирать? Лучше так:

    Код:
    @echo off
    echo %date% - %time% : start
    for /f "tokens=3 delims= " %%a in ('dir c:\ /-c') do set free=%%a
    if /i %free% LSS 1073741824 (net send administrator CHECK FREE SPACE^! drive c: %free% bytes free^!) else (echo %date%, %time% : drive c: %free% bytes free, message not sent)
    echo %date% - %time% : finish
     

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 20:10 16-08-2007 | Исправлено: Tipulatoid, 20:32 16-08-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    paveltr
    wmic diskdrive get size
    wmic logicaldisk get size
    wmic logicaldisk get freespace
    wmic /?
     

    Код:
     
    for /f "skip=1" %%i in ('wmic logicaldisk c: get freespace') do (
          echo На С: осталось %%i bites
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:43 16-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    paveltr
    Вообще есть утилита, которая висит в трее и контрлирует размер свободного места на дисках, как только меньше - идет почта на указанный адрес
    Так что не мучайся в данном случае

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 22:35 16-08-2007
    king_stiven

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

    Код:
    xcopy a b:\
    if errorlevel 4 echo нет места

     
    так не работает, хотя выдаёт сообщение  
     
    Недостаточно места на текущем диске.
    Вставьте другой диск и нажмите клавишу ENTER для продолжения...
     
    Что не так?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 22:44 16-08-2007
    Elroir



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

    Цитата:
    Что не так?

    Батник не доходит до строчки "if errorlevel 4 echo нет места"
    Сообщение выводит команда xcopy...

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:02 16-08-2007
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru