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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    192168
    Отлично. Ещё пара вопросов. Архивы в течение дня не перемещаются? До конца дня лежат в одном месте? TF982 - именно это и будет использоваться (интересует, неизменная часть имени будет именно из 5-и символов)?

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 14:26 30-11-2009 | Исправлено: BVV63, 14:27 30-11-2009
    192168

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Архивы не перемещаются.
    Неизменная часть для дат до 10 числа 5 символов - 1, 2, ....9, для двузначных 6 символов.
     
    Добавлено:
    Вот сформулировал....
    Неизменная часть для дат до 10 числа - 1, 2, ... 9 - 5 символов, в дни с двухзначной датой 6 символов.

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 14:40 30-11-2009
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    192168
    Вот пример реализации получения последней цифры номера:
    Код:
    @ECHO OFF
    FOR /F "USEBACKQ TOKENS=1 DELIMS=" %%a IN (`DIR /O:N /B TF982?.arj`) DO SET "LAST_FILE=%%~na"
    SET /A "LAST_NUM=%LAST_FILE:~-1%+1"
    ECHO %LAST_NUM%

     
    Добавлено:
    А с днями я бы все-таки рекомендовал добавлять лидирующий ноль в слечае даты до 10 числа - чтоб сортировка была естественная...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 14:50 30-11-2009
    192168

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

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 14:58 30-11-2009
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    192168
    Выполните код без файлов с такой маской и все сразу станет на свои места
     
    Добавлено:
    Только для файлов с кривой маской придется "огород догораживать"...
    ЗЫ: Что-то меня гложет вышестоящая организация... А был ли мальчик?
    Всмысле действительно ли они сказали именно это и правильно ли были поняты
     
    Добавлено:
    И это только вычисления очередной цифири а не весь код... Правильнее конечно будет его немного облагородить:
    Код:
    @ECHO OFF
    SET "LAST_FILE="
    FOR /F "USEBACKQ TOKENS=1 DELIMS=" %%a IN (`DIR /O:N /B TF982?.arj 2^>nul`) DO SET "LAST_FILE=%%~na"
    SET /A "LAST_NUM=%LAST_FILE:~-1%+1"
    ECHO %LAST_NUM%


    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 15:12 30-11-2009
    192168

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yurkesha
    Что-то гложет меня подозрение, что вы меня во вранье  подозреваете; так я поводов не давал. Как-то оно сразу вот так с мальчиками нехорошо. Просто отвратительно.

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 15:25 30-11-2009
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    192168
    Пробуй код.  
    Я не подозреваю - могу только догадываться что ты не всю ситуацию до конца рассказал. А из того что имеется в наличии получается не очень приглядная картина - прям тебя ставят в очень неловкое положение... Но куда денешься условие есть условие...
    Поэтому придется использовать две маски - ? и ?? на конце...
     
     
    Добавлено:
    То есть вот так:
    Код:
    FOR /F "USEBACKQ TOKENS=1 DELIMS=" %%a IN (`DIR /O:N /B TF982?.arj TF982??.arj 2^>nul`) DO SET "LAST_FILE=%%~na"


    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 15:30 30-11-2009
    192168

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yurkesha
    2^>nul - что выполняется?

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 15:34 30-11-2009
    yurkesha



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

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 15:40 30-11-2009
    192168

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Большое спасибо.
     
    Если не трудно, почему 2^ ?
    ^ исключающее или, 2 будет errorlevel при отсутствии файлов?

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 15:57 30-11-2009
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    192168
    ^ - символ экранирования для символа перенаправления.... Смотри FOR /?
     
    Добавлено:
    2 - это поток ошибок - его перенаправляем в NUL...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 16:33 30-11-2009
    192168

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

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 17:13 30-11-2009
    GORA2



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

    Код:
    Echo Proba
    Rem где - код 07H (BEEP)
    Почему не работает BEEP в Windows 7 x64 ?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 21:24 30-11-2009
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GORA2
    не знаю, как у Вас - у меня работает...
    Правба, "бип" выдаёт через звуковую карту...

    ----------
    http://www.imho.ws

    Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 01:45 01-12-2009 | Исправлено: BorlandIMHO, 01:48 01-12-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    192168
    Вот мой вариант. Маска такая, которую Вы указали: TF982.

    Код:
     
    If Not Exist "<Путь к архивам>\TF982*.*" (
        Set Number=1
        GoTo :0
        )
    CD "<Путь к архивам>"
    For %%A In (TF982*.*) Do (
        Set ArchiveName=%%A
        )
    Set Number=%ArchiveName:~5,1%
    Set /A Number=%Number%+1
    :0
    "<Путь к архиватору>\Arj.Exe" a -h#"<Путь к архивам>\TF982%Number%" SFile.ext1
     

    Календарное число не учитывается, маска пятисимвольная. Нетрудно учесть и календарное число, но какая маска должна быть шестисимвольной? По какому принципу она вообще формируется?

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 05:53 01-12-2009 | Исправлено: BVV63, 05:59 01-12-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    форумчане, у кого установлен  win server 2003 resource kit: там есть команда clip?  
     

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:35 01-12-2009
    BVV63



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

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 13:25 01-12-2009
    mugil_cephalus

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

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:31 01-12-2009
    192168

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
     
    Спасибо!
    Уточнились с маской и нумерацией; маску приняли вида *DDN*.ext1, проблема пять-шесть символов снята.  
     
    DD дата двухсимвольная;
    N - номер в течение дня
     
    Спасибо.

    Всего записей: 19 | Зарегистр. 10-11-2006 | Отправлено: 15:54 01-12-2009
    drksrv

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

    Код:
    @echo off
    cls
    echo Protecting srcds from crashes...
    title srcds Watchdog
    :srcds
    echo (%time%) srcds started.
    start /wait srcds.exe -console -game left4dead2 -port 27016 +map "c1m1_hotel versus" +sv_lan 0 +sv_gametypes versus
    echo (%time%) WARNING: srcds closed or crashed, restarting....
    goto srcds

    То есть запусает, и в случае закрытия запускает повторно и так далее.
    Вопрос собственно вот в чём - если вдруг екзешник выбивает критикалом либо закрывается как то не так как всегда, то в бате появляется строка:

    Код:
    ^CЗавершить выполнение пакетного файла [Y(да)/N(нет)]?

    На которую бат не реагирует. Помогите пожалуйста добавить в бат посылку ключа \n в этом случае.
    Заранее большое спасибо.

    Всего записей: 3 | Зарегистр. 01-12-2009 | Отправлено: 17:24 01-12-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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru