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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    NIKZZZZ



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

    Цитата:
    Есть ли еще книжки?

    По WSH небольшая подборка.
     
    Добавлено:
    mbku

    Цитата:
    Надо по каждой ветке на экран выдавать окошко c кнопкой “Ok”

    В шапке в Полезных утилитах Пакет утилит для организации интерфейса.

    Цитата:
    Можно ли чтобы где-нибудь в отдельном окошке шли сообщения, что сейчас в данный момент батник делает.  

    А само окно cmd консоли чем плохо?
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:59 03-08-2007
    slayer120



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые гуру подскажите плиз как работать с свободным местом на дисках.
     Задача - есть несколько винтов  на которые автоматом пишутся большие файлы
    (архивы) ежедневно. Места на винтах иногда может не хватить. Хотелось бы  
    1. Определить размер файлов которые должны копироваться ( они лежат в разных каталогах разных машин) - наверно с помощью for для списка файлов можно?
    2. Определить свободное место на всех винтах файл сервера, куда пишутся бакапы.

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 09:19 03-08-2007
    KapralBel



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

    Код:
    dir c:\ | find /i "свободно"

    Получение свободного места на диске

    Цитата:
    Определить размер файлов которые должны копироваться

    Список файлов сможешь получить или они зашиты в теле батничка?

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



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

    Цитата:
    dir c:\ | find /i "свободно"

    Лучше fsutil  volume diskfree c:

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:24 03-08-2007
    Maza Faka



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

    Цитата:
    Ну так что, никто не знает, как батником удалить файлы из одного каталога (бекапа), отсутствующие в другом, исходном (рабочем) каталоге?

    Проверь PM, я тебе кинул скрипт AutoIT-а, чуть переделаешь под свою задачу и прикрутишь к батнику.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:49 03-08-2007
    slayer120



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
      Список в файле- 5-6 файлов с бакапами. Я так понял по первому вопросу надо сделать цикл для for и просуммировать ~zI для всего списка файлов.
      Еще вариант - если надо определить размер каталога с подкаталогами (в которых лежат файлы) -
    это тоже через dir ?

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 11:00 03-08-2007 | Исправлено: slayer120, 11:02 03-08-2007
    KapralBel



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

    Цитата:
    Список в файле- 5-6 файлов с бакапами. Я так понял по первому вопросу надо сделать цикл для for и просуммировать

    Да
     

    Цитата:
    Еще вариант - если надо определить размер каталога с подкаталогами (в которых лежат файлы) -
    это тоже через dir ?

    Да
    Но есть лучший выбор в Support Tool входит diruse

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



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

    Цитата:
    GORA2  
    У меня работает
    А если так
    Цитата:
    xxx
    ;!@InstallEnd@! .....  
         ;!@InstallEnd@! .....  
    1   ;!@InstallEnd@! .....  
    то снова не работает как надо. Вместо одного раза находит два!

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 11:34 03-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    Слюшай, у тэбя какой-то финдСтр - нэправильны
    У меня вообще ничего не находит в начале строк по !@InstallEnd@!

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Так у меня идет поиск стринга
    Цитата:
    ;!@InstallEnd@!
    а не
    Цитата:
    !@InstallEnd@!


    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 12:17 03-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    А в таком случае только 1 строка

    Код:
    03.08.2007=D:\>findstr /b /c:";!@InstallEnd@!" 111
    ;!@InstallEnd@! .....

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Странно все это
    Тестовый батник:
    Код:
    @echo off
    set file=WCMICONS.txt
    FOR /F "eol= tokens=* usebackq" %%i in ("%file%") do (
    echo %%i | findstr /b /i /c:"; This SFX archive" /c:";!@InstallEnd@!" && set /a flag+=1
    )
    echo %flag%
    pause>nul
    exit
     
    Файл WCMICONS.txt:
    Цитата:
    xxx
    ;!@InstallEnd@! 1
        ;!@InstallEnd@! 2
    1   ;!@InstallEnd@! 3
    Результат работы:
    Цитата:
    ;!@InstallEnd@! 1
    ;!@InstallEnd@! 2
    2
     
    Система winXP+SP2. Что у меня не так!?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 12:48 03-08-2007
    vserd

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

    Цитата:
    Что у меня не так!?

    Setlocal ENABLEDELAYEDEXPANSION ?

    Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:57 03-08-2007
    GORA2



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

    Цитата:
    Setlocal ENABLEDELAYEDEXPANSION ?

    Не включены они у меня! Могу даже setlocal disabledelayedexpansion вставить во вторую строку - результат тот же.

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 13:03 03-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    Ошибка в том, что FOR срезает во втором случае лидирующие пробелы
    Делай по другому
    Сначала фильтр, а потом разбор строк по FOR

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



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

    Цитата:
    Сначала фильтр, а потом разбор строк по FOR  
    Можно привести пример, как это должно выглядеть?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 13:20 03-08-2007
    Maza Faka



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

    Цитата:
    FOR срезает во втором случае лидирующие пробелы

    GORA2

    Цитата:
    как это должно выглядеть?

    Попробуй использовать вместо "tokens=*", "delims="

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:28 03-08-2007
    KapralBel



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

    Код:
    @Echo Off
    Set flag=0
    FOR /F "tokens=* eol=" %%a In ('findstr /b /c:";!@InstallEnd@!" 111') Do Set /a flag+=1
    Echo %flag%

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    Ваш вариант вроде сработал.
    KapralBel
    К сожалению не прокатило. Цель всех этих проверок, не подсчет количества вхождения стрингов в файле, а нахождение строк с этими стрингами и выполнение замены строк на другие. Я привел тестовый батник с помощью которого пытался выяснить "неработоспособность" ключа /b.
    Извините, если ввел в заблуждение не четкой постановкой задачи.
    Всем спасибо.

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 15:07 03-08-2007
    MsdLamer

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Профессионалы подскажите пожалуйста на примере как можно сделать следующее:
     
    Допустим файлик отчет по картам называется так: Отчет картам_02_08_07.xls (_02_08_07)
    это число, месяц и год.
     
    Можно ли как нибудь с помощью батника пересохранять этот файлик, но с текущей датой, месяцем и годом. Спасибо.

    Всего записей: 53 | Зарегистр. 26-07-2007 | Отправлено: 13:25 07-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