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

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

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

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 11:11 10-10-2010
    01MDM



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

    Цитата:
    Как сделать параллельный цикл до меня так и недоперло

     

    Код:
     
    @echo off
    setlocal
     
    set s=0
     
    :1
    for /f "tokens=*" %%i in ('more +%s% 1.txt') do (
    for /f "tokens=*" %%j in ('more +%s% 2.txt') do (
     
        echo %%i %%j
        set /a s+=1
        goto:1
     
    ))
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:01 10-10-2010
    ADGJMPTW009

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужен скрипт чтоб из папки удалялись файлы по имени pcw*.dem старше 7 дней

    Всего записей: 1 | Зарегистр. 10-10-2010 | Отправлено: 20:24 10-10-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ADGJMPTW009
    Тут фактически на прошлой странице обсуждался подобный вопрос.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ADGJMPTW009
    Смотри тут. Пост специально для тебя.
    res2001, тебя еще интересуют штампы времени? Могу подкинуть код консольной тулзы (аналог touch), которую можно юзать из батников.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 00:26 11-10-2010 | Исправлено: ComradG, 00:29 11-10-2010
    andymrrc

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

    Всего записей: 2 | Зарегистр. 15-03-2006 | Отправлено: 09:50 11-10-2010
    res2001



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

    Цитата:
    тебя еще интересуют штампы времени?

    Меня они вроде не особо интересуют, постольку поскольку пытаюсь отвечать на вопросы.
    Кстати, на счет штампов времени, накропал батничег, навеянный вопросами от Maximus777, который переводит дату/время в секунды от начала эпохи а-ля *никсы, щаз пытаюсь сделать обратный. Как доделаю выложу тут, может кому сгодится.

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    ой-йо, мне точно сгодится. Ибо делаю и там и там. В лине красивее получаецца. С секундами очень просто. Заранее большая спасиба.

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 17:34 11-10-2010
    SANIOK_AV



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
    Хочу автоматизировать процес:
    В ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318} проверить все подразделы этой ветки на наличие в их подразделе "Connection" переменной "Name", значение которой равно известному нам заранее значению (к примеру "Подключение по локальной сети"), и если такая переменная есть берём в качестве результата название этого подраздела.
    Я пока застрял на первом этапе....(((
    Делаю так:

    Код:
    reg query HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318} /v Name /s /f "Подключение по локальной сети" /d /c /e

    Возвращает все значения "Name" найденные в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
    Делаю так:

    Код:
    reg query HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318} /s /f "Подключение по локальной сети" /d /c /e

    Возвращает всё что равно "Подключение по локальной сети"
    Подскажите пожалуйста, как можно реализовать для начала хотя-бы первый этап?
    Заранее благодарен!!!

    Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 18:32 11-10-2010
    01MDM



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

    Код:
     
    @echo off
    setlocal
    1>nul chcp 1251
     
    set "regroot=HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}"
     
    for /f "tokens=3*" %%i in ('reg query "%regroot%" /s ^| findstr "Name"') do echo %%i %%j
     
    1>nul chcp 866
     


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

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 21:20 11-10-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 01:31 12-10-2010
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 08:24 12-10-2010
    Maximus777

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

    Код:
    @echo off
    for /r %%i in (.) do (
    @echo %%i
    for %%j in (%%i\*.*) do (
    @echo %%~nj%%~xj
    ))

    Скажите, как избавиться от пути до папки, в которой запускается батник? Т.е. щас генерируется такая запись:

    Код:
    E:\bla-bla-bla\distr\Setup\MiscSetup\.

    а хотелось бы так:

    Код:
    Setup\MiscSetup

    Точка и слеш тоже лишние в конце. Запуск происходит в папке distr

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 10:36 12-10-2010 | Исправлено: Maximus777, 11:36 12-10-2010
    Iacoyn



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, как с помощью bat файла менять строку известной длины в xml файле?
    Нужно для двух задач:
    1 Всем известный Kerio winroute.cfg
    нужно менять например
    TW311-GQ49Y на что-нибудь такое же. Значение может быть разным, но той же структуры.
    <config>
    <table name="License">
      <variable name="TrialId">TW311-GQ49Y</variable>
    </table>
    2 Skype
    нужно менять/создавать в папке настроек пользователя в файле shared.xml
    следующее
       <Connection>
          <DisablePort80>1</DisablePort80>
          <DisableUPnP>1</DisableUPnP>
          <ListeningPort>8888</ListeningPort>
          <Port>8888</Port>
        </Connection>
    причём между этими параметрами могут быть любые строки, а значение портов в данном файле Skype у каждого по умолчанию Random.
    Для меня задача слишком тяжёлая

    Всего записей: 2384 | Зарегистр. 07-05-2002 | Отправлено: 10:55 12-10-2010
    king_stiven

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

    Код:
    mode con codepage select=1251 > nul
    :begin
    set /a sum+=1
    if /i "%~d0\" neq "%cd%" (
        cd ..
        goto begin
    )
    setlocal enabledelayedexpansion
    set blok=!sum!
    setlocal DISABLEDELAYEDEXPANSION
    for /f "usebackq tokens=*" %%d in (`dir "%~dp0"/o /s /b /a:d`) do (
        for /f "tokens=%blok%* delims=\" %%e in ("%%d") do echo %%f
    )

     
    Добавлено:
    Iacoyn
    sed ом, но копаться в нём не буду, тяжело

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



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

    Цитата:
    а хотелось бы так:  


    Код:
    @echo off
    set p=%~dp0
    call:ownerdir %p:~,-1%
    echo %ownerdir%\%~n0%~x0
    exit
     
    :ownerdir
    set ownerdir=%~n1%~x1
    exit /b

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    спасибо. Работает. Блин, но мудрёно ...

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 11:25 12-10-2010
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:32 12-10-2010
    GORA2



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

    Цитата:
    но мудрёно ...


    Код:
    @echo off
    SetLocal enabledelayedexpansion
    for %%i in (%CD%) do Set msc=%%~dpi
    for /R %%i in (*.*) do (
        Set ti=%%i
        echo !ti:%msc%=!
    )
    Pause
     

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 13:08 12-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru