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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как в bat-файле при работе в чистом ДОС'е из полного имени файла, т.е. <имя.расширение> получить только <имя> без расширения.  
    Имя файла в батник передается как параметр.

    Всего записей: 40 | Зарегистр. 12-02-2002 | Отправлено: 10:36 12-01-2007
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть команда
    "C:\>net localgroup Администраторы"
     
    она выдает слишком много лишней информации
    "Имя псевдонима     Администраторы
    Комментарий        Администраторы имеют полные, ничем неограниченные права доступа к компьютеру или домену
     
    Члены
     
    -------------------------------------------------------------------------------
    домен\Domain Admins
    Администратор
    Команда выполнена успешно."
     
    можно сделать что бы отображались только члены этой группы?
    ну тоесть
    "домен\Domain Admins
    Администратор"
    заранее благоадерн

    Всего записей: 1498 | Зарегистр. 07-09-2004 | Отправлено: 10:51 12-01-2007
    Elroir



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

    Цитата:
    можно сделать что бы отображались только члены этой группы?  

    Попробуй запускать так:

    Код:
    net localgroup Администраторы | more +6 | find /v "выполнена"

     
    Добавлено:
    esb
    Используй модификатор ~n:

    Код:
    echo %~n1

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:39 12-01-2007 | Исправлено: Elroir, 12:39 12-01-2007
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    класно, точно нужно, но только на сколько я понял в английской это работать не будет?

    Всего записей: 1498 | Зарегистр. 07-09-2004 | Отправлено: 14:39 12-01-2007
    Elroir



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

    Цитата:
    только на сколько я понял в английской это работать не будет?

    Если поменять Администраторы на Administrators, а "выполнена" на "completed", то будет
    Я тестировал на английской WinXP.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:45 12-01-2007
    Petrofox

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

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



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

    Цитата:
    А что, команду setlocal enabledelayedexpansion, уже отменили?
     

     
    Не знал про нее аднака потому и извращался так. Буду теперь знать.
     
    Далее. Речь идет про логи. Т.е. StanislavG полюбому будет интересовать время последней записи в файл.
     

    Цитата:
    Дальше - человеку надо архивировать вчерашние файлы. У тебя архивируются все файлы сгруппированные по дате.  

     
    В исходном задании не было про вчерашние файлы. Было про создать архив с именем, соответствующему дате файла. Потом никто не мешает перенести их в архив или в другое место.
     

    Цитата:
    После первого запуска, в temp директории уже будут txt файлы, которыми пользуется батник, то есть при каждом последующем запуске, туда будут добавляться записи.  

     
    А батничек то чистит за собой временные файлы.

    Всего записей: 371 | Зарегистр. 22-12-2005 | Отправлено: 21:28 12-01-2007 | Исправлено: evgeni666, 21:31 12-01-2007
    Zyava



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Может такая задача уже рассматривалась, но прочитать все страницы некогда, просто проглядел - вроде бы не нашел. Задача такая: нужен бат-файл, который запускает exe файл, ждет его завершнения и снова запускает тот же exe файл.
     
    Я написал так:
     
    :begin
    start /wait myexe.exe
    goto begin
     
    где myexe.exe - консольное приложение
     
    при этом появляется запрос ^CЗавершить выполнение пакетного файла [Y(да)/N(нет)]?
    нужно сделать так чтобы этого запроса не появлялось а просто перезапускалась программа myexe.exe. У start нет никакого ключа для этого .

    Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 22:51 12-01-2007
    Elroir



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

    Цитата:
    А батничек то чистит за собой временные файлы.  

    Извини - не заметил

    Цитата:
    В исходном задании не было про вчерашние файлы

    Так мы же потом уточняли...
     
    Zyava
    Батник ты написал совершенно верно. У меня такое впечатление, что твоя прога в процессе работы генерирует сигнал Control-C, который батник интерпретирует как попытку остановить его.

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Еще вопрос
     
    есть файл send.ini

    Цитата:
    [Champ name] # Название турнира
    0+Аделаида-2
    [Mail name] # Имя ящика в программе The Bat!
    0#Yandex.ru
    [Period number] # Текущий номер периода
    0~3
    [Group id] # Номер или буква сетки
    0*5

     
    В батнике выполняется команда:

    Цитата:
    set /p per_num=Введите номер периода (от 1 до 16)...

     
    Пользователь, допустим, вводит "4"
     
    Как указать батнику, чтобы он записал новое значение не первую, и не последнюю, а скажем, в шестую строку send.ini? Заменив строку "0~3" на "0~4"
     
    Спасибо

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 03:55 13-01-2007
    igrok_b2k



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    допустим имеется 2 сервера пусть они будут 127.0.0.1  и 127.0.0.2  
    имеется определненная программа которая должна запускаться с рабочей машины, но серверы частенько в ауте ((  
    как написать 2 ватника, по которым он пигнанет сервер, и если серв в ауте то он просто выкинет ошибку (типа Сервер не доступен) а если сервер пинганется, то он запустит прогу
     
     
    З.Ы. там нашел про пинг и выключения компов, сам в этом плохо понимаю, так что лудше помогите пожалуста, заранее благодарен!
     
    Добавлено:
    нужна еще консультация как через батник добавить в реестр чтонить без вопросов (когда добавляешь в реестр, он спрева спрашивает действинтельно добавить да\нет,  а потом пишет информация добавлена в реестр), как ето убрать в батнике???

    Всего записей: 13 | Зарегистр. 04-12-2006 | Отправлено: 11:16 13-01-2007 | Исправлено: igrok_b2k, 11:40 13-01-2007
    Zyava



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

    Цитата:
    Zyava  
    Батник ты написал совершенно верно. У меня такое впечатление, что твоя прога в процессе работы генерирует сигнал Control-C, который батник интерпретирует как попытку остановить его.

     
    Дело в том, что это программа может сама вылетать или кто-то будет убивать ее процесс, поэтому такое сообщение будет в каком-то из случаев, вот как бы его отключить/обойти?

    Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 12:48 13-01-2007
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Попробуй так:
    Код:
    START /B /WAIT


    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 18:23 13-01-2007
    Elroir



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

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
     
    :: Reading period number
    set /p per_num=Введите номер периода (от 1 до 16)...  
    set per_num=0~%per_num%
    set line=6
     
    del /q tmp_file 2>nul
    set counter=1
    for /f "tokens=*" %%a in (send.ini) do (
    if !counter!==!line! (echo %per_num%>>tmp_file) else (
    echo %%a>>tmp_file)
    set /a counter=!counter!+1
    )
    del /q send.ini 2>nul
    ren tmp_file send.ini
     

     
    igrok_b2k

    Цитата:
    как через батник добавить в реестр чтонить без вопросов  


    Код:
    regedit /s setings.reg


    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:31 13-01-2007
    Desenix

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igrok_b2k
     
    @echo off
    ping 127.0.0.1 -n 1 || goto noerr
    echo ERROR 127.0.0.1
    goto fend
    noerr:
    echo OK
    fend:

    Всего записей: 10 | Зарегистр. 20-11-2006 | Отправлено: 21:16 13-01-2007
    Petrofox

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня файлы архивные типа "c4102708.77F" распаковываются тотал коммандером или фаром, можно с помощью батника их распаковать ??

    Всего записей: 16 | Зарегистр. 12-01-2007 | Отправлено: 21:36 13-01-2007
    Elroir



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

    Цитата:
    У меня файлы архивные типа "c4102708.77F"...можно с помощью батника их распаковать ?

    Если напишешь, что это за формат такой - наверняка можно.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:53 13-01-2007
    Petrofox

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

    Всего записей: 16 | Зарегистр. 12-01-2007 | Отправлено: 23:41 13-01-2007 | Исправлено: Petrofox, 23:43 13-01-2007
    evgeni666



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Petrofox
    Ну так возьми консольный архиватор. Тот же zip или rar.

    Всего записей: 371 | Зарегистр. 22-12-2005 | Отправлено: 01:22 14-01-2007
    Elroir



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

    Код:
     
    @echo off
    for %%I in (*.77F) do (
    :: Следующую строчку нужно подстроить к своей утилите разархивации
    unzip %%I -d %%~nI
    )
     

    Каждый .77F файл, разархивируется в новую директорию, название которой соответствует его имени.
    В переменной %%I будет имя файла с расширением, а в %%~nI - только имя.
    Утилит с именем unzip.exe, очень много. Ключи могут несовпадать.  

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:49 14-01-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru