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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    nik4z



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

    Цитата:
    Посмотрите на данный пример  


    Код:
    for %%i in (b\*) do (
      for %%j in (b,u,d,l,r,f,ud,ul,ur,uf,du,dl,...,frld) do call :_1 "%%j\%%nxi"
      echo.>>1.csv
    )
    goto :eof
    :_1
    echo.|set /p= %%~z1;>>1.csv
    goto :eof


    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 12:51 20-06-2016
    YuS_two



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

    Цитата:
    название файлов и расширения одинаковые, отличие только в размере файла

    Вотжеж... похоже, что начать надо было с того, что одинаковые названия и расширения у файлов в разных папках...

    Цитата:
    Как мне объединить эти файлы в единую таблицу, где каждый тестовой файл и есть столбец.


    Цитата:
    Наоборот, строк 8185 (по каждому файлу), столбцов 206 (по каждой папке)

    Ну, как это сделать на чистом cmd, на другом форуме в двух вариантах, а я могу предложить ещё на powershell - напрямую в Excel будут заполнятся ячейки с форматированием, правда не очень быстро (зато наглядно ), но тут уже ничего не поделать:

    Код:
    $pth='c:\TEST'
    $fp='b','u','d','l','r','f','ud','ul','ur','uf','du','dl','dr','df','lu','ld','lr','lf','ru','rd','rl','rf','fu','fd','fl','fr','udl','udr','udf','uld','ulr','ulf','urd','url','urf','ufd','ufl','ufr','dul','dur','duf','dlu','dlr','dlf','dru','drl','drf','dfu','dfl','dfr','lud','lur','luf','ldu','ldr','ldf','lru','lrd','lrf','lfu','lfd','lfr','rud','rul','ruf','rdu','rdl','rdf','rlu','rld','rlf','rfu','rfd','rfl','fud','ful','fur','fdu','fdl','fdr','flu','fld','flr','fru','frd','frl','udlr','udlf','udrl','udrf','udfl','udfr','uldr','uldf','ulrd','ulrf','ulfd','ulfr','urdl','urdf','urld','urlf','urfd','urfl','ufdl','ufdr','ufld','uflr','ufrd','ufrl','dulr','dulf','durl','durf','dufl','dufr','dlur','dluf','dlru','dlrf','dlfu','dlfr','drul','druf','drlu','drlf','drfu','drfl','dful','dfur','dflu','dflr','dfru','dfrl','ludr','ludf','lurd','lurf','lufd','lufr','ldur','lduf','ldru','ldrf','ldfu','ldfr','lrud','lruf','lrdu','lrdf','lrfu','lrfd','lfud','lfur','lfdu','lfdr','lfru','lfrd','rudl','rudf','ruld','rulf','rufd','rufl','rdul','rduf','rdlu','rdlf','rdfu','rdfl','rlud','rluf','rldu','rldf','rlfu','rlfd','rfud','rful','rfdu','rfdl','rflu','rfld','fudl','fudr','fuld','fulr','furd','furl','fdul','fdur','fdlu','fdlr','fdru','fdrl','flud','flur','fldu','fldr','flru','flrd','frud','frul','frdu','frdl','frlu','frld'
    $Excel=New-Object -ComObject Excel.Application
    $Excel.Visible=$true
    $WorkBook=$Excel.Workbooks.Add()
    $WSheet=$WorkBook.Worksheets.Item(1)
    $WSheet.Name='Размеры'
     
    $i=1
    $n=2
    foreach ($fd in $fp){
        if(test-path $pth\$fd\*.*){
            $WSheet.Cells.Item(1,$i)=$fd
            foreach($file in (dir -recurse $pth\$fd\*.*)){
                $WSheet.Cells.Item($n, $i) = $file.length
                $n++
            }
            $i++
        }
        $n=2
    }
    $UsedRange = $WSheet.UsedRange
    $UsedRange.EntireColumn.AutoFit() | Out-Null

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 19:40 20-06-2016
    lorents



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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:25 20-06-2016
    Merlin2006

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь!  
    Просьба помочь с написанием батника такого плана  
    1. Ищет в реестре базы 1С .7.7 и получает их пути (сделал через выгрузку реестра)  
    2. Создает батник резервного копирования найденных баз только при их изменении (тоже готов, но с прописанными вручную путями + задача на выполнение в планировшик).  
    Так вот, заготовки есть, а вот как полученные пути из первого пункта добавить в батник второго пункта (автоматом) - в этом вся загвоздка...  
     
    Заранее спасибо за помощь.

    Всего записей: 1226 | Зарегистр. 20-07-2009 | Отправлено: 18:30 20-07-2016
    zerno777



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, прошу помощи.
     
    есть папка с 8-ю зип архивами (ежесуточный бекап)
     
    нужен батник который будет контролировать даты файлов, т.е. контроль что бекап(архив) создался ...
    батник должен определить текущую дату и перебрать даты всех файлов в папке,
     если дата файла вышла за период текущая минус 8 дней то сделать вывод в лог.
    заранее спасибо.

    Всего записей: 40 | Зарегистр. 11-10-2007 | Отправлено: 10:16 21-07-2016
    bomzz

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

    Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 11:34 21-07-2016 | Исправлено: bomzz, 11:35 21-07-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzz
    Цитата:
    @echo off
    del /f /q KB.txt
    type list.txt>list_ansi.txt
    for /f "tokens=4-5 skip=1" %%a in (list_ansi.txt) do call :KBName %%a %%b>>KB.txt
    goto :eof
     
    :KBName
    if "%1"=="Update" (echo.%2)&&goto :eof
    echo.%1
    goto :eof

    Всего записей: 12398 | Зарегистр. 11-03-2002 | Отправлено: 11:54 21-07-2016
    bomzz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    спасибо большое, так трудно вспоминать что к чему
    это для темы висты
    http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=18652&start=180#lt

    Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 17:49 21-07-2016 | Исправлено: bomzz, 17:50 21-07-2016
    tdmods

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли заставить bat файл дождаться запуска определенного процесса?

    Всего записей: 180 | Зарегистр. 09-11-2015 | Отправлено: 21:54 21-07-2016
    bomzz

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

    Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 04:36 22-07-2016
    YuS_two



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

    Цитата:
    Можно ли заставить bat

    можно:

    Код:
    @echo off
    :loop
    cls
    tasklist|find "process"
    if errorlevel 1 (echo Process waiting...&&timeout /t 5&&goto loop)
    echo Congratulations! The process launched.
    pause

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 08:13 22-07-2016
    mat86



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите создать bat
    Идея такая: при запуске bat он заменяет Winre.wim (стандартное "средство устранения неполадок", а по сути небольшой Windows PE) вызываемый по нажатию f8 в начале загрузки windows 7 и выше, на свой Windows PE (Bart PE).
     
    Задача:  
     
    При запуске bat он ищет по всем дискам файл \BWIM\boot.wim и \BWIM\boot64.wim (для 64 разрядных систем).  
     
    При нахождении ищет по всем дискам файл \Recovery\***\Winre.wim (где *** - папка с разным именем на разных пк).  
     
    При нахождении переименовывает Winre.wim в Winre.wim.bak.  
     
    Далее смотрит наличие папки (диск на котором \Recovery\***\Winre.wim):\Windows\SysWOW64\, то есть проверяет разрядность.  
     
    Если такая папка есть копирует  \BWIM\boot64.wim в \Recovery\***\ (где *** - папка с разным именем на разных пк) с именем Winre.wim.
     
    Если папки SysWOW64 нет копирует \BWIM\boot.wim в \Recovery\***\ с именем Winre.wim
     
    Как найти BWIM\boot.wim по всем дискам реализовать могу, а дальше не знаю, помогите пожалуйста

    Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 10:54 26-07-2016 | Исправлено: mat86, 08:55 27-07-2016
    Zumpel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте народ! Помогите мне в одном вопросе, описываю процесс: запускаю приложение (игру), в системе win7_64, все работает, но присутствуют значительные лаги. Если выйти на раб. стол через альт-таб, затем вызвать дисп. задач и в процессах выставить приоритет этой игре  - "высокий", затем войти обратно в игру, лаги тем временем станут еще чаще, подождать пару секунд, и вернуть приоритет обратно в "средний", тормознутость приложения прекращается! (пробовал разные варианты, но лечиться именно так)
    Так вот вопрос, можно ли как то автоматизировать этот процесс и посредством чего?

    Всего записей: 3 | Зарегистр. 26-07-2016 | Отправлено: 11:22 26-07-2016
    mat86



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть команда запуска программы с нужным приоритетом, а нужна комманда изменения запущеного приоритета. Не знаю есть ли такая

    Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 14:26 26-07-2016 | Исправлено: mat86, 15:35 26-07-2016
    Zumpel

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

    Цитата:
    Есть команда запуска программы с нужным приоритетом, а нужна комманда изменения запущеного приоритета. Не знаю есть ли такая

    Так вот же, нагулить ни как  не могу)

    Всего записей: 3 | Зарегистр. 26-07-2016 | Отправлено: 20:11 26-07-2016
    sundraw

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго здоровья!
    Имеется батник для замены текста в файлах

    Код:
     
    @echo off
    SetLocal EnableExtensions EnableDelayedExpansion
     
    Set infile=D:\BAT\1.txt
    Set outFile=D:\BAT\BAT\1.txt
    Set find=750
    Set replace=1020
     
    for /F "UseBackQ delims=" %%n in ("%infile%") do (  
      set "LINE=%%n"
      echo=!LINE:%find%=%replace%!>>"%outFile%"
    )
     

     
    Не могу понять, где проблема. Вроде отрабатывает без ошибок, но выходной файл D:\BAT\BAT\1.txt не хочет появляться. Раньше батником пользовался без проблем.

    Всего записей: 844 | Зарегистр. 15-05-2011 | Отправлено: 18:18 27-07-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sundraw
    Цитата:
    sed "s/750/1020/g"
    как-то проще и быстрее

    Всего записей: 12398 | Зарегистр. 11-03-2002 | Отправлено: 18:22 27-07-2016
    sundraw

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

    Цитата:
    sundraw
    Цитата:
    sed "s/750/1020/g"
    как-то проще и быстрее  

     
    Не совсем понял, куда его ставить   Вопрос в том, что не появляется выходной файл с заменённым текстом. Может это связано с большими скоростями SSD ? Батник пролетает за доли секунды, не успевает найти нужный текст? Или что-то другое.

    Всего записей: 844 | Зарегистр. 15-05-2011 | Отправлено: 18:53 27-07-2016
    nik4z



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

    Цитата:
    меется батник для замены текста в файлах

    Прекрасно работает.
    А каталог D:\BAT\BAT существует?

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 19:28 27-07-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sundraw
    Цитата:
    Не совсем понял, куда его ставить
    Ну во-первых, нужен виндовый СЕД.
    Во-вторых, ему на вход нужно подать файл (или указать в комстроке). Полный вариант примерно такой:
    Цитата:
    type D:\BAT\1.txt|sed "s/750/1020/g">D:\BAT\BAT\1.txt


    Всего записей: 12398 | Зарегистр. 11-03-2002 | Отправлено: 19:45 27-07-2016
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru