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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    Ilyansk

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    whoyou
    есть еще утилиты командной строки, делающие тоже самое (одна из них, по-моему, sed называется). батником вызываешь с ключами и именами файлов, она все лишнее в них "почикает". Можно исхитриться и батником типа
     
    @echo off
    set outfile=%2
    for /F "tokens=*" %%l in (%1) do call :razbor %%l
    goto :eof
    :razbor
    if "%1"=="" goto :eof
    echo %1 >>  %outfile%
    shift
    goto:razbor
     
    в качестве параметров получает имя обрабатываемого и выходного файлов (без пробелов только!, если надо приводите к виду LONHNA~1.EXT) Пустые строки в outfile не попадут
    Вот только скорость работы не фонтан; утилиты быстрее работают в разы. Компилированные, ведь, многопоточные все-таки...
     

    Всего записей: 70 | Зарегистр. 27-07-2006 | Отправлено: 13:50 10-02-2009 | Исправлено: Ilyansk, 14:02 10-02-2009
    SERGE_BLIZNUK

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

    Цитата:
    Все это класно но когда в день по 200-400 файликов приходит и их надо прверить, день удет. Файлики приходят с IBM машины.

    1) это плагин обрабатывает файлы по маске. Т.е. не каждый файл отдельно, а задаём маску (по желаюнию, если есть вложенные подкаталоги, ставим соответствующую "птичку") и вуа-ля! Пара минут и результат достигнут!
    2) никто не мешает написать ПРОСТЕЙШУЮ программку (на любом ЯП ) для обработки файлов! помочь?..

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 15:24 10-02-2009
    whoyou

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
     
    Если Вас не затруднит.
    И для других будет полезно.

    Всего записей: 23 | Зарегистр. 30-01-2009 | Отправлено: 15:58 10-02-2009
    ponand

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

    Цитата:
    А, если просто в ком. строке вбить:
    Код:
     
    pkzip -extr=up 75121_autoshok.zip C:\Archives
     

    распаковывает только если папка существует  
    не всегда создается папка как быть?

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 19:03 10-02-2009 | Исправлено: ponand, 19:11 10-02-2009
    AndreusB



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ponand
     
    cd c:\
    if not exist Archives mkdir Archives

    Всего записей: 212 | Зарегистр. 20-07-2008 | Отправлено: 21:29 10-02-2009
    Maza_Faka



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

    Цитата:
    не всегда создается папка как быть?

    Почему не создаётся, в коде ведь есть команда создания папки. У меня этот код работает, проверь ещё раз.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:04 11-02-2009
    Ilyansk

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

    Цитата:
    Если Вас не затруднит.  
    И для других будет полезно.

    это про плагин или прогу? прогу чиркнул я на турбопаскале
    попробуйте (exe-шник+исходнег внутре)

    Всего записей: 70 | Зарегистр. 27-07-2006 | Отправлено: 09:50 11-02-2009
    whoyou

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

    Всего записей: 23 | Зарегистр. 30-01-2009 | Отправлено: 10:12 11-02-2009
    ottovvich



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

    Всего записей: 1 | Зарегистр. 02-11-2006 | Отправлено: 15:08 11-02-2009
    Nagual



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

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

    отвечал тебе здесь
    поправка на сжатие строк
    more/s старый_текст.файл>текст.файл
    far и самописные утилиты не обязательны

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 20:25 11-02-2009
    cubacuba

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь bat файл дописывающий к имени файла название папки. Есть папка в которой очень много папок, а в этих папках файлы, можно как то переименовать файлы в имена папок + имена файлов (каталог/папка1/файл.* => любая папка, можно в той же/папка1файл.*)?

    Всего записей: 3 | Зарегистр. 13-11-2008 | Отправлено: 21:05 11-02-2009
    Elroir



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

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


    Код:
     
    @echo off
    :try
    if "%~1"=="" goto :EOF
    copy "%~1" d:\
    shift
    goto try
     

     
    Добавлено:
    cubacuba

    Код:
    @for /d %%a in (*.*) do @for %%b in ("%%a"\*.*) do @ren "%%b" "%%a_%%~nxb"


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:09 11-02-2009 | Исправлено: Elroir, 22:24 11-02-2009
    cubacuba

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Огромное спасибо!!!!! Вы меня ОЧЕНЬ выручили....спасибо РАБОТАЕТ!!!

    Всего записей: 3 | Зарегистр. 13-11-2008 | Отправлено: 00:23 12-02-2009
    graydevil



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как изменить этот код ( удаление сторки c "g:\test" ) чтобы обработались все файлы в каталоге ?
     
    @echo off  
    chcp 1251  
     
    for /f %%1 in ('dir /b *.log') do call :int_work %%1  
    goto end  
       
    :int_work  
    type %1 | find "g:\test" || goto :eof  
    type %1 | find /v "g:\test"> new_file.efd  
    del %1  
    rename new_file.efd %1  
    goto :eof  
       
    :end

    Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 10:01 12-02-2009
    Maza_Faka



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

    Код:
     
    for /f %%1 in ('dir /b *.*') do call :int_work %%1
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:30 12-02-2009
    graydevil



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет не так )) Так совсем некорректно работает.

    Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 10:39 12-02-2009
    whoyou

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть батник который переименовывает файлики как имя-дата-время-счетчик.dat и создает файл имя-дата-время-счетчик.dat.ок в 0 байт
    Запускается он каждых 5 минут (моя задачка страница 37)  все работает на ура НО:
    Что надо дописать или исправить чтоб счетчик увеличивался а не начинал с ЕДИНИЦЫ
     
    Пример батника:
     
    @Echo On
    Set f_Ext=dat
    Set f_Ok=ok
    Set f_Count=0
    For %%a In (d:\outgoing\*.*) Do @Call :Rena %%a %%~ta
    exit
     
    goto :EOF
     
    :Rena
    Set /a f_Count=%f_Count%+1
    Set f_Name=%1
    Set f_Date=%2
    Set f_Time=%3
    Set f_Day=%f_Date:~0,2%
    Set f_Month=%f_Date:~3,2%
    Set f_Year=%f_Date:~6,4%
    Set f_Hour=%f_Time:~0,2%
    Set f_Min=%f_Time:~3,2%
    Set f_NewName=out-%f_Year%%f_Month%%f_Day%-%f_Hour%%f_Min%-%f_Count%
     
    If Exist %f_NewName% Set f_NewName=%f_NewName%-%f_Count%
    Ren %f_Name% %f_NewName%.%f_Ext%
    copy nul d:\outgoing\out-%f_Year%%f_Month%%f_Day%-%f_Hour%%f_Min%-%f_Count%.%f_Ext%.%f_Ok%
     
    goto :EOF
     
    Заранее благодарен.

    Всего записей: 23 | Зарегистр. 30-01-2009 | Отправлено: 15:31 12-02-2009
    chel78



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Привет.
     такое дело, есть  скажем так несколько точек  доступа WLAN (всего около 100). нужен батник, который би пинговал все точки по очереди, для проверки,  рабочая или нет, и выводил  лог.
     потому как  пинговать каждую точку поотдельности напряжно и долго, а физически, проверить, нету возможности.
     
    имя точки доступа например ord-ap001 и т д. но список непоследователен, тоесть в батнике наверное нужно указать не диапазон, а  весь список точек.
      заранее спасибо.

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 16:01 12-02-2009
    king_stiven

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

    Цитата:
    А как изменить этот код ( удаление сторки c "g:\test" ) чтобы обработались все файлы в каталоге ?  

    А ты под %%1 что подразумеваешь, папку или файл из папки, файлы в которой надо обработать?
    whoyou

    Цитата:
    Что надо дописать или исправить чтоб счетчик увеличивался а не начинал с ЕДИНИЦЫ  

    Не понял, может тебе надо
    Set /a f_Count=%f_Count%+1
    убрать а

    Код:
    For %%a In (d:\outgoing\*.*) Do (
        Set /a f_Count+=1
        Call :Rena %%a %%~ta
    )
     

     
    и
    goto :EOF  
    в конце как то странно смотрится.

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 21:42 12-02-2009
    Ilyansk

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

    Цитата:
    more/s старый_текст.файл>текст.файл

    одну пустую строку таки оставляет...

    Всего записей: 70 | Зарегистр. 27-07-2006 | Отправлено: 07:46 13-02-2009
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru