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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах (часть 1)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    KapralBel



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

    Код:
     for /f "tokens=1,2 delims==" %%a in (1.xml) do if "%%a"=="^<internal list_of_libraries" set "right_parts=%%b"  

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 09:56 21-03-2007
    JohnRD

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

    Код:
     
    gsar -s"internal list_of_libraries=\"" -r"internal list_of_libraries=\"msproxy.dll, " 1.xml 2.xml
     

    поскольку правая часть после = встечается в другом порядке
    "wbproxy.dll, ikeyLD.dll"
    "ikeyLD.dll, wbproxy.dll"
    "wbproxy.dll, ikeyOLD.dll"
    "ikeyOLD.dll, wbproxy.dll"
    и даже в разном регистре (руками правили)
     
    но сама идея подмены слева меня убила..
     
    огромное Вам спасибо  
     
    KapralBel  

    Цитата:
    Ставь ^ перед <

    спасибо, уловил на будущее
    Вы были правы gsar рулит

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 10:42 21-03-2007 | Исправлено: JohnRD, 10:51 21-03-2007
    Kelly777

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую всех!
    C помощью Ver можно в батнике узнать версию Windows.
    Например:
    ----------
    C:\>Ver
     
    Microsoft Windows 2000 [Версия 5.00.2195]
    ----------
    Но как узнать из командной строки к какому выпуску ОС относится:  Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server или вообще Windows 2000 Datacenter?

    Всего записей: 10 | Зарегистр. 04-08-2006 | Отправлено: 13:25 21-03-2007
    MammothDEL

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вот, может кому пригодится
     
    BatCmdEditor
     
    Простой редактор для редактирования bat/cmd-файлов.
    Подсветка синтаксиса, запуск (с программы) и другое.
     
    http://themammoth.narod.ru/ (внизу)
     
    ps Есть у кого нибудь дока по Config.sys (создание меню). Как создавать меню/субменю знаю, но может есть какие-нибудь хитрости.  
     
    И можно ли сделать что-нибудь, что бы не появлялся при загрузке (после выбора какого-нибудь пункта меню) "экран Windows 98". А то гружу другую ось, а перед загрузкой данный экран.
     
    pps извените если не там спросил




    Не надо портить ссылки. Исправлено. /evle/

    Всего записей: 272 | Зарегистр. 22-11-2005 | Отправлено: 13:27 21-03-2007 | Исправлено: evle, 13:45 21-03-2007
    Maza Faka



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

    Цитата:
    Но как узнать из командной строки к какому выпуску ОС относится:  Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server или вообще Windows 2000 Datacenter?

     

    Код:
    SYSTEMINFO

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:20 21-03-2007
    igor_andreev

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

    Цитата:
    Но как узнать из командной строки к какому выпуску ОС относится:  Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server или вообще Windows 2000 Datacenter?

    тырк
     
     
    Добавлено:
    Maza Faka
    В 2K нет такой команды, systeminfo...

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 15:21 21-03-2007
    Kelly777

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

    Цитата:
    тырк

    Спасибо!

    Всего записей: 10 | Зарегистр. 04-08-2006 | Отправлено: 16:53 21-03-2007
    5ar5



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветсвую, есть задача с помошью bat-файла запрограммировать коммутатор, который поддерживает telnet. Сам коммутаор имеет ip-адрес 192.168.0.1. Логин/пароль admin.  Пытался сделать что-то типа такого:
     
    telnet 192.168.0.1
    echo admin
    echo admin
     
    Но врезультате выдается только приглашение к вводу логин и пароля. Т.е. логин и пароль не вводятся.  
     
    У меня вопрос можно ли реализовать данную задачу только на bat-файлах, без использования сторонних утилит? Или все же для этого нужно использовать терминал и передавать команды конфигурирования коммутатора ему? Если использовать терминал, то как передать ему какую-либо команду?

    Всего записей: 36 | Зарегистр. 23-02-2006 | Отправлено: 18:57 21-03-2007 | Исправлено: 5ar5, 19:03 21-03-2007
    igor_andreev

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

    Цитата:
    У меня вопрос можно ли реализовать данную задачу только на bat-файлах, без использования сторонних утилит?

    Нет

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 19:20 21-03-2007
    othy

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет! Нужно в cmd определять тип файла(не по расширению) для txt(866,1251),zip,arj,rar,doc,rtf,xls и ещё несколько..
    По его сигнатуре или ещё как, чем можно?

    Всего записей: 62 | Зарегистр. 28-11-2005 | Отправлено: 02:08 22-03-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    othy
    Насколько я знаю - ничем.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:11 22-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Теоретически возможно, но никто этим для батников наверно не занимался еще, потому как не надо и муторно. othy первым будет Можно попробовать по заголовку(по аналогии с плагином MultiArc для TC или Far обозвать словом ID).  
     
    Вот первое, что под руку подвернулось, краткое обьяснение arsvrn в теме про MultiArc.  
    Если натравить какую-нить консольную тулзу типа hex.exe(hex.zip тут) на архив RAR, то в заголовке будет 0000000000: 52 61 72 21, если натравить на архив UHA, то в заголовке будет 0000000000: 55 48 41 06 и т.д.
    Но этот ID далеко не у всех файлов в самом начале находится и даже может не в первых 64 кб...
    othy
    А практическая польза от такого батника какая будет?

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 03:28 22-03-2007 | Исправлено: igor_andreev, 03:33 22-03-2007
    othy

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нашёл - может кому будет интересно.
     
    TrID v2.02, 25KB ZIP определяет-переименовывает по сигнатуре
    http://mark0.net/soft-trid-e.html
     
    TrID XML defs, 431KB RAR (archive with 2431 definitions, 16/03/07) полная база XML-описаний сигнатур
    http://mark0.net/soft-tridscan-e.html
     
    Из которой выбираются нужные и пакуются под себя для TrID следующей тулзой
    TrIDDefsPack v1.02, 21KB ZIP
     
    А txt под вопросом остались..

    Всего записей: 62 | Зарегистр. 28-11-2005 | Отправлено: 03:29 22-03-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    Да я понимаю, что возможно - я и сам могу утилиту такую написать
    Я просто никогда не видел таких программ (как оказалось они есть)
     
    othy
    Спасибо, будем знать.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 03:34 22-03-2007
    othy

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это часть задачи
    Исходные данные:
    В папку IN приходят файлы
        - с расширением и без него
        - архивы и нет
        - присутствуют одинаковые файлы по содержимому,
          из них одни определяются сразу, другие после распаковки
        - присутствуют файлы различные по содержимому, но с одинаковыми именами
        - список масок файлов, исключаемых из анализа
        - все поступающие файлы копируются без изменений в папку DD-MM-YY_2
    Батник запускается периодически.
     
    Необходимо:
    Переместить файлы(если архивы-то их содержимое) в одноимённые подпапки
    каталога DD-MM-YY_1. В случае:
    1.Если только что пришедший файл дубль уже существующего - можно и перезаписать,
      иначе, при совпадении имени файла, добавить к имени подпапки отметину,
      например текущее время
     
    Польза не нужно анализировать поток файлов руками и другим в сети понятней будет, и разархивировать не нужно будет.
    Как вариант ещё можно приложить к поиску файлов, которые пытаются скрыть изменением расширения.

    Всего записей: 62 | Зарегистр. 28-11-2005 | Отправлено: 03:39 22-03-2007
    igor_andreev

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

    Цитата:
    TrID v2.02, 25KB ZIP определяет-переименовывает по сигнатуре  

    Ты не один Спасибо, теперь будем знать.

    Цитата:
    с расширением и без него  

    Я вот например псих и сразу бы подчиненным такую выволочку устроил, что у всех бы насовсем пропало желание складывать в папку IN что-либо без расширения

    Цитата:
        - присутствуют одинаковые файлы по содержимому,  
          из них одни определяются сразу, другие после распаковки

    fdf.exe http://home.online.no/~tjaberg/

    Цитата:
        - присутствуют файлы различные по содержимому, но с одинаковыми именами  
        - список масок файлов, исключаемых из анализа

    directify.exe, ей можно маску указать http://www.n37dev.com/Products/Directify/
     
     
     

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 04:05 22-03-2007 | Исправлено: igor_andreev, 04:09 22-03-2007
    stegmatik



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ребята ,как сделать ,чтоб  когда файл попадает в папку in запишал бипер? да не просто запищал ,а када попадает например *.doc пикнул 1 раз, а *.xls 2раза.  
     
    Я догадываюсь что такой батник должен быть запущен всегда, и он должен сканировать директорию ,с определённым интервалом....хотя этому есть альтернатива, запускать  файл шедулером каждые  5 минут.
    заранее благодарен!

    Всего записей: 19 | Зарегистр. 14-03-2007 | Отправлено: 08:25 22-03-2007 | Исправлено: stegmatik, 08:41 22-03-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    stegmatik
    Что-то в этом духе

    Код:
    @echo off
     
    set first_ext=doc
    set second_ext=xls
     
    dir /b *.* >files.log
     
    :check
    ::Проверка новых doc - файлов
    for /f "tokens=*" %%a in ('dir /b *.%first_ext%') do (
       find "%%a" > nul files.log & if errorlevel 1 (
          echo Найден новый файл формата %first_ext% ^(%%a^)
          echo )
    )
     
    ::Проверка новых xls - файлов
    for /f "tokens=*" %%a in ('dir /b *.%second_ext%') do (
       find "%%a" > nul files.log & if errorlevel 1 (
          echo Найден новый файл формата %second_ext% ^(%%a^)
          echo )
    )
     
    dir /b *.* >files.log
    ping -n 10 -w 1000 localhost > nul
    goto check

     
    Вместо квадратиков после echo надо будет ввести самому - нажать Alt и 7 на дополнительной раскладке клавиатуры. Это - писки из динамика.
     
    в ping -n 10 -w 1000 localhost > nul после -n нужно поставить требуемое время задержки (в секундах) перед следующим сканированием папки.

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 09:08 22-03-2007
    ssnvit

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    На одном из разделов диска расположена папка C:\TEMP, содержащая несколько папок JOB1, JOB2....JOBN. В папках JOB содержатся текстовые файлы *.txt со случайными именами файлов - например 2754.txt, cp_3576.tx и т.д. Необходимо скопировать папку C:\TEMP, допустим на D:\TEST с сохранением структуры папок JOB, но при условии, если в какой-либо папке, например  на D:\TEST\JOB5, находится файл 1234.txt и такое же имя файла имеется в C:\TEMP\JOB5, то копирование на D: не выполнять. Желательно также вывести список файлов с одинаковыми именами в отдельный лог. Естественно файлы *.txt могут быть разными и по содержанию, и по размеру и т.п. То есть, если имя файла совпадает, копирование не выполнять, а если имена фaйлов различаются, то копирование выполнять

    Всего записей: 156 | Зарегистр. 05-12-2002 | Отправлено: 10:38 22-03-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ssnvit
    RoboCopy - идеальная тулза для решения проблемы
    Хочу сделать копию папки, за исключением ... список исключений

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:54 22-03-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 100

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru