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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    19w85



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    На этих плохо работает:

    Код:
    07,08,08(05-06-51) x(yz.png
    Копия 07,08,08(05-06-51) x(yz.png
    Копия (2) 07,08,08(05-06-51) x(yz.png

    Можешь исправить и на них испытать?

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 08:34 10-08-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    19w85
    Усложнять задания неспортивно
     

    Код:
     
    @echo off
    setlocal
     
    set re="s;\(.*\)\(........(.*)\)\(.*\);\2;g"
     
    for %%i in (*.png) do call:ren "%%i"
    goto:eof
     
    :ren
    for /f "tokens=*" %%i in ('echo %1 ^| sed %re%') do set "old=%%i"
    set "old=%old:~0,18%"
     
    echo %old% | findstr \. 1>nul && goto:eof
     
    for /f "tokens=1-4 delims=,(" %%1 in ("%old%") do set "new=20%%3.%%2.%%1 (%%4"
    for /f "tokens=*" %%i in ('echo %1 ^| sed "s;%old%;%new%;g"') do set "new=%%i"
    ren %1 %new%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:34 10-08-2008
    19w85



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Когда нашёл sed, то заработало.  
    Спасибо.
     

    Цитата:
    Усложнять задания неспортивно

    Ну, вообще говоря такое задание и было, как в примерах в предыдущем посте...
    1 батник в одну строку переименовывал файлы вида
    Код:
    07,08,08(05-06-51).png
    и
    Код:
    07,08,08(05-06-51)*.png

     
    А потом я попросил батник,  который помимо этих двух вариантов переименовывался еще и
    Код:
    *07,08,08(05-06-51)*.png

    2 последних файла в примере именно такого вида

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 15:33 10-08-2008 | Исправлено: 19w85, 15:36 10-08-2008
    lamener

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спец символы - это каке ? В документе простой текст, ну может содержать все знаки препинания Английского языка !
    Я вот обработал твой код, вот что у меня получилось, самое главное то, что выполняет поставленную задачу !!!! Спасибо тебе !!  

    Код:
     
    @ECHO off
    FOR /F "EOL=; TOKENS=1,2* " %%i IN (1.txt) DO set txt=%%i %%j %%k
    setlocal
    if not "%txt:~1024%"=="" (
    set /p=%txt:~0,1024%<nul>1.txt
    set /p=%txt:~1024%<nul>>1.txt
    )
     

    Всего записей: 25 | Зарегистр. 23-07-2008 | Отправлено: 07:25 11-08-2008
    kit001



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно сделать сделать батник на следующую ситуацию:
    1) Проверка текущего соединения интернета путем пинга
    2) В случае его отстуствия перезапуск соединения
    3) Перезапуск соотвестующих служб если не помогло первое и перезапуск соединения с интернетом
     
    В написании бат команд я полный нуб
     
    Я как понимаю что запуск батника по расписанию можно выставить в Планировщике заданий

    Всего записей: 36 | Зарегистр. 17-01-2007 | Отправлено: 09:16 11-08-2008 | Исправлено: kit001, 09:20 11-08-2008
    x3mmer

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

    Всего записей: 5 | Зарегистр. 17-08-2007 | Отправлено: 16:58 11-08-2008
    king_stiven

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

    Цитата:
    Работа с текстом, датой, и файлами »  

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 17:50 11-08-2008
    miha7411



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем! Знатоки, подскажите как из батника, который запущен с админскими правами, кикнуть юзера(разлогинить) с правами пользователя, который зашел через быстрое переключение пользователей? Система Win XP SP2. Shutdown.exe не позволяет выбрать конкретного юзера, вобщем посоветуйте что-нибуть.

    Всего записей: 23 | Зарегистр. 19-01-2007 | Отправлено: 17:54 11-08-2008
    Tipulatoid



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

    Цитата:
    3) Перезапуск соотвестующих служб если не помогло первое и перезапуск соединения с интернетом

    "Соответствуюшие службы" - это какие именно?

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 18:42 11-08-2008
    mdma81

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня задача схожая с описанной  kit001
     с первой половиной решения разобрался самостоятельно
    @ping -n 1 194.67.57.26 && exit || ftp -A 10.253.0.12  
     но дальше возникла проблема - как разорвать установленное ftp-соединение? надо с клавиатуры quit писать, а как бы сделать это средствами командной строки? интуитивно понимаю, что надо организовать перенаправление ввода, но как, куда и откуда не могу сообразить.
     

    Всего записей: 39 | Зарегистр. 16-08-2006 | Отправлено: 13:51 12-08-2008
    Nagual



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

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 15:28 13-08-2008 | Исправлено: Nagual, 15:28 13-08-2008
    mdma81

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    спасибо за помощь, хотя често сказать в итоге получился следующий вариант:
    @ping -n 1 194.67.57.26 && exit || ftp -s:c:\2ftp.txt 10.253.0.12
    а в файлике 2ftp.txt две строчки: anonymous
                                                       quit
    Немного коряво, через файл-то, но через echo у меня передать команды серверу так и не получилось, может быть нужны более подробные инструкции

    Всего записей: 39 | Зарегистр. 16-08-2006 | Отправлено: 17:12 13-08-2008
    contrafack

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйся, мне надо автоматизировать процесс архивирования:
    Встренный планировшик не подходит, т.к. по разному должен выполнятся архивация.  
    значит задача такая:
    Есть папка 777, которая находится в C:\Base
    при запуске BAT-ника должен архивироватся 777 папка и хранится в папке D:\rezerv. Имя файла желательно совпал с датой архивацией

    Всего записей: 3086 | Зарегистр. 21-04-2008 | Отправлено: 10:28 14-08-2008
    tolyn77



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

    Код:
     
    @echo off
    chcp 1251 1>nul
    if "%~1"=="" echo No Parameters && goto:eof
    for /f "tokens=*" %%i in ('dir /b /s /a %1') do (
        echo "%%~di","%%~pi","%%~ni","%%~xi","%%~zi","%%~ti" 1>>list.txt
    )
     

     
    а если в пути писать
    \\ip\share\path\filename
    как его можно разбить по такому типу?
    echo "ip","share","path","filename","size","date" 1>>list.txt
     
    заранее благодарен

    Всего записей: 1495 | Зарегистр. 07-09-2004 | Отправлено: 12:02 14-08-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tolyn77
    Попробуй такой вариант, самому проверить на реальной шаре нет возможности
     

    Код:
     
    @echo off
    setlocal
     
    chcp 1251 1>nul
    if "%~1"=="" echo No Parameters && goto:eof  
     
    for /f "tokens=*" %%i in ('dir /b /s /a %1') do (
        for /f "tokens=1-3* delims=\" %%i in ("%%~pi") do set fp="%%i","%%j","%%k\%%l"
        call:write "%%~nxi" "%%~zi" "%%~ti"
    )
    goto:eof
    :write
    echo %fp%,%1,%2,%3 1>>list.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:59 14-08-2008 | Исправлено: 01MDM, 16:08 14-08-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По личному запросу одного из участников форума выкладываю на всякий случай и в общак
    Сценарий для удаления концевых пробелов, а также и пустых строк
    В сценарии используется никсовая утилита sed
    На выходе получаем файл в кодировке ansi(1251)
    Кому надо, цикл для работы с параметрами, дописывайте сами
     
    Код:
    @echo off
    chcp 1251>nul
    title
    Удаление концевых пробелов и пустых строк
    set inp=orig.txt
    set out=edit.txt
    if exist %inp% sed -r -e "/^$/d" %inp%>__._&&sed -r -e "s/[ \t]*$//" __._>__.-&&more __.->%out%&&del/q __.?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 15:35 14-08-2008
    antik861

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Извиняюсь , если уже было. Просто тяжело все 60 страниц пролистать. Киньте ссылку на доки по bat-файлам.

    Всего записей: 3 | Зарегистр. 11-08-2008 | Отправлено: 15:49 14-08-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://www.intuit.ru/department/os/compromtwin/3/
    http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9+%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f
    http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9+%D1%84%D0%B0%D0%B9%D0%BB&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f
    http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%B1%D0%B0%D1%82+%D1%84%D0%B0%D0%B9%D0%BB&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 16:00 14-08-2008
    tolyn77



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

    Всего записей: 1495 | Зарегистр. 07-09-2004 | Отправлено: 11:48 15-08-2008
    winhex



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

    ----------
    А сегодня что для завтра сделал я ?..

    Всего записей: 628 | Зарегистр. 27-02-2005 | Отправлено: 13:33 15-08-2008
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru