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

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

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

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу проверить на истинность: команда echo "% %#&&@4$$? % ?? №а;: ? & ? *" всегда правильно сработает, если обрамлена двойными кавычками, несмотря на любые проблемные знаки кроме двойных кавычек.

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 11:29 14-10-2010 | Исправлено: king_stiven, 11:31 14-10-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как с помощью sed сделать такое:
    есть файл, в нем только одна строка.
    Если в строке две и менее фамилий (фамилии разделены запятыми, т.е. в строке не более 1 запятой), то вернуть строку как есть.
    Если в строке 3 и более фамилии (т.е. 2 и более запятые), то, если первый символ русский, вернуть Первая_Фамилия и др., если английский - Famili et al.
     
    Т.е.
    Иванов И.И. => Иванов И.И.
    Иванов И.И., Петров П.П. => Иванов И.И., Петров П.П.
    Иванов И.И., Петров П.П., Сидоров С.С. => Иванов И.И. и др.
    Ivanov I.I., Petrov P.P, Sidorov S.S.=> Ivanov I.I. et al.
     
     
     

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 12:04 14-10-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven команда echo трактует неудвоенные символы % как служебные (начало/конец переменной) со всеми вытекающими...
     
     
    Добавлено:
    BagaBaga вроде так:

    Код:
    @echo off
    chcp 1251
    sed -r "s/([a-z][^,]*),.*/\1 et al./gi;s/([^,]*),([^,]*),.*/\1,\2, и др./gi" <file1

    если строк более одной - они обрабатываются независимо.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:21 14-10-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    понял, если вводить в батник как %1(сбрасывать файлы на батник мышкой) то нормально всё, а если непосредственно в батнике написать, то команда echo трактует неудвоенные символы % как служебные

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 15:11 14-10-2010 | Исправлено: king_stiven, 15:12 14-10-2010
    wolf0425



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

    Цитата:
    если вводить в батник как %1(сбрасывать файлы на батник мышкой) то нормально всё
    ага, %1 и переменные циклов - подставляются в команды без прохода по ним препроцессором.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:39 14-10-2010
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, а кто решал задачу получения своего внешнего IP из командного файла? Есть какие-нибудь наработки?

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 18:26 14-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    решали. назад полистай страниц может 10. но точно не очень давно

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:38 14-10-2010
    Accessor



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

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 18:58 14-10-2010
    01MDM



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

    Цитата:
    Народ, а кто решал задачу получения своего внешнего IP из командного файла? Есть какие-нибудь наработки?


    Код:
     
    @echo off
    setlocal
     
    2>nul 1>&2 cmd /c wget -O "%TEMP%\ip.txt" "http://whatismyip.com/automation/n09230945.asp"
     
    0<"%TEMP%\ip.txt" set /p "ip="
     
    del "%TEMP%\ip.txt"
    echo %ip%
     

    С помощью wget.exe

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:20 14-10-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как можно сделать такое:
    есть 4 файла, в каждом по одной строке. Для определенности, в файлах f1, f2, f3, f4 хрнятся строки (ровно одна строка в каждом файле) s1,s2,s3,s4
    выдать на консоль [s1][s2][s3][s4], т.е. "склеить" эти строки в одну, обрамленные квадратными скобками?

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 21:58 14-10-2010
    01MDM



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

    Код:
     
    @echo off
     
    0>nul 2>&0 (
     
    for /f "tokens=*" %%i in ('type *.txt') do set /p="[%%i]"
     
    )
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:17 14-10-2010
    M1chA



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, как реализовать завершение 1С на терминальном сервере под всеми пользователями?
    Нужно, чтобы в 22:45 все 1С-и которые не закрыты закрылись бы.
    Сервер крутится под 2003 std

    Всего записей: 283 | Зарегистр. 11-10-2006 | Отправлено: 14:50 15-10-2010 | Исправлено: M1chA, 14:51 15-10-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    M1chA
    taskkill /? + шедулер тебе помогут

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:10 15-10-2010 | Исправлено: res2001, 15:10 15-10-2010
    NvvLazyTiger



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет. Есть у M$ дивная утилита командной строки - telnet.exe (у меня w2k3 server).
     
    Вопрос - как (если вообще) передать ей сценарий сеанса связи, перехватить её StdOut & StdErr? И получить коды ошибок (ErrorLevel)?
     
    Или может быть есть альтернатива?

    Всего записей: 244 | Зарегистр. 14-02-2009 | Отправлено: 15:14 15-10-2010
    res2001



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

    Цитата:
    Есть у M$ дивная утилита командной строки - telnet.exe

    Она не дивная, она кривая. Передать сценарий ей нельзя, ерорлевел она не устанавливает. Ищи альтернативу от других производителей, если тебе эти функции нужны.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:29 15-10-2010
    M1chA



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2res2001
     
    Стормозил )
    Когда это уже сделал ты ответил )))

    Всего записей: 283 | Зарегистр. 11-10-2006 | Отправлено: 15:34 15-10-2010
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, есть ли средства вычитать список юзверей из каталога LDAP почтового сервера?

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 17:06 15-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Accessor
    есть

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:18 15-10-2010
    serg3001



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые, спецы помогите создать bat файлик, очень нужна помощь:
     
    В папке имеется txt файл с именем U01.txt в виде:
     
    058:42306810913001194171:500.50:Иванов:Иван:Иванович:
    0113:42307810313002471421:2000.00:Петров:Петр:Петрович:
    0164:42301810913005852993:3000.00:Сидоров:Сидор:Сидорович:
     
    для него необходимо создать 1234.zag файл, который имеет вид:
     
    Тест:13000534:22.01.2010:07:40201810600000100002:3:5500.50:001:12.10.2010
     
    где красным цветов помечены переменные величины, которые извлекаются из txt файла, а именно -
     
    3 - кол-во строк в файле txt;
    5500.50 - общая сумма из 3-го столбца;
    001 - номер, который будет возрастать для следующих txt файлов;
    12.10.2010 - дата создания txt файла.
     
    Текст который будет помещаться в zag файл должен быть в DOS кодировке.  
     
     
     
     
     
     

    Всего записей: 3681 | Зарегистр. 16-10-2010 | Отправлено: 17:18 16-10-2010
    res2001



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

    Цитата:
    12.10.2010 - дата создания txt файла.  

    Дата создания какого файла 1234.zag или U01.txt?
    Обрабатываемый файл всегда имеет это имя?
    Что делать с файлом после обработки?
     
     
    Добавлено:
    Как-то так будет:

    Код:
    @echo off
    if exist num.ini (set /p num=<num.ini & set /a "num+=1") else (set "num=1")
    echo.%num%>num.ini
    set /a "sum1=0"
    set /a "sum2=0"
    set /a "count=0"
    for /f "tokens=3,4 delims=:." %%i in (u01.txt) do (
        set /a "count+=1"
        set /a "sum1+=%%i"
        set /a "sum2+=%%j"
    )
    set /a "sum1+=sum2/100"
    set /a "sum2=sum2%%100"
    set "sum2=000%sum2%"
    set "num=000%num%"
    >1234.zag echo.13000534:22.01.2010:07:40201810600000100002:%count%:%sum1%.%sum2:~-2%:%num:~-3%:%date%
     

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 20:04 16-10-2010
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru