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

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



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

    Всего записей: 2441 | Зарегистр. 27-10-2003 | Отправлено: 09:32 04-12-2015 | Исправлено: clio77, 09:39 04-12-2015
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вопрос наверно простой, но с комстрокой глубоко на вы...
    Как указать зайти на компе на диск Д в папку с именем = имени компа, там стереть все вложенные папки кроме одного последней созданной (по дате), не трогая файлы, лежащие там вне папок?  
     
    если б еще представить, как комстрокой указывать компу в панели Backup&recovery отчеркивать только библиотери последнего залогиненного юзера, снимая отметки с прочих пунктов, и заставлять делать бэкап этих библиотек, было б вообще супер..  

    Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 00:53 10-12-2015
    andrejka_k

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Ecть нeoбхoдимocть в aвтoмaтизaции pутинных дeйcтвий пoльзoвaтeля, кoтopaя дoлжнa выпoлнятьcя пpи coблюдeнии oпpeдeлeннoгo уcлoвия.
    Нa cepвepe paбoтaeт coфт, кoтopый пpeднaзнaчeн для пapcингa. Для пepвoгo зaпуcкa пapcингa нeoбхoдимo oткpыть фaйл пpoeктa (нaзoвeм фaйл project). Oткpыть фaйл мoжнo чepeз cтpoку мeню пpoгpaммы Open, либo пo гopячим клaвишaм Ctrl+O. Дaлee нeoбхoдимo зaпуcтить пpoeкт путeм нaжaтия нa кнoпку нa пaнeли зaдaч или c пoмoщью гopячeй клaвиши. Пocлe этих элeмeнтapных дeйcтвий (этo вpoдe дeлaeтcя лeгкo, зaпиcывaя дeйcтвия мыши или нaжaтия гopячих клaвиш, a зaтeм вocпpoизвeдeния) пpoцecc зaпуcкaeтcя и идeт в штaтнoм peжимe.
    В хoдe выпoлнeния пpoцecca в oпpeдeлeннoй пaпкe coздaeтcя фaйл c peзультaтaми пapcингa, кoтopый пocтoяннo пepeзaпиcывaeтcя (пуcть этoт фaйл лeжит пo cлeдующeму пути c:\folder\result.xls).
    Oб oкoнчaнии пapcингa мoжнo cудить пo вpeмeни измeнeния фaйлa result.xls, cpaвнивaя eгo c cиcтeмным вpeмeнeм. Т.e. ecли в фaйл нe внocятcя измeнeния (в фaйл зaпиcaн пocлeдний peзультaт пapcингa), тo вpeмя eгo измeнeния будeт cooтвeтcтвoвaть мoмeнту внeceния в этoт фaйл пocлeднeй зaпиcи. Дoпуcтим, пocлeдняя зaпиcь в фaйл result.xls былa внeceнa в 09:00.
    Cpaвнивaя cиcтeмнoe вpeмя co вpeмeнeм внeceния пocлeднeгo измeнeния в фaйл result.xls, мoжнo уcтaнoвить мoмeнт нaчaлa нoвoгo пapcингa, a фaктичecки мoмeнт пoвтopeния дeйcтвий, oпиcaнных вышe (cнoвa oткpыть фaйл пpoeктa Ctrl+O и зaпуcтить eгo пo гopячeй клaвишe). И таким образом зациклить процесс.
    Пуcть cиcтeмнoe вpeмя 09:00, a вpeмя измeнeния фaйлa result.xls тoжe 09:00, тoгдa ждeм дaльшe и пpoвepяeм cнoвa paзницу вo вpeмeни. Cиcтeмнoe вpeмя cтaнoвитcя 09:01, a вpeмя измeнeния фaйлa result.xls ocтaeтcя пo-пpeжнeму 09:00. Дaльшe cиcтeмнoe вpeмя – 09:02, вpeмя измeнeния фaйлa ocтaeтcя пo-пpeжнeму 09:00. … Дaльшe cиcтeмнoe вpeмя – 09:10, вpeмя измeнeния фaйлa ocтaeтcя пo-пpeжнeму 09:00. Тaк вoт, нужнa пpoгpaммa или скрипт (макрос), кoтopaя тaким oбpaзoм будeт нe тoлькo зaпиcывaть и вocпpoизвoдить нaжaтия клaвиш или пoлoжeниe куpcopa мыши, нo и выпoлнять эти дeйcтвия пpи coблюдeнии oпpeдeлeннoгo уcлoвия – ВOЗНИКНOВEНИЯ PAЗНИЦЫ МEЖДУ ВPEМEНEМ ИЗМEНEНИЯ ФAЙЛA result.xls И CИCТEМНЫМ ВPEМEНEМ, cкaжeм в 10 минут.
    Cкaжитe, тaкoe мoжнo peaлизoвaть пpи пoмoщи батников или посоветуйте подходящую для этих целей пpoгpaмму?
    Зapaнee бoльшoe cпacибo.

    Всего записей: 1215 | Зарегистр. 13-05-2003 | Отправлено: 13:44 12-12-2015
    mbku

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что-то не поняла почему не могу зайти в 11-ю часть, я там что-то даже спрашивала. Обидно.
     
    Не могу найти поиском ответ на данный вопрос.
    Есть каталог-SR, в нем подкаталоги, в тех тоже подкаталоги и т.д.  
    Везде во всех подкаталогах кучи файлов с разными расширениями.  
    Вопрос- Как скопировать все файлы из SR и его подкаталогов просто в один каталог-Master.
    Только файлы, не каталоги.
    Спасибо заранее, мне старушке в этом форуме всегда помогают

    Всего записей: 26 | Зарегистр. 03-08-2007 | Отправлено: 17:29 15-12-2015
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mbku
    Цитата:
    for /r SR %%a in (*) do copy /y "%%a" Master\

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 17:42 15-12-2015
    DeathMOROZ

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hi, All!
     
    Пишу батник для "раскрытия каталогов", который бы скидывал все файлы из всех вложенных папок в одну и потом удалял бы пустые каталоги. Пока есть вот что:

    Цитата:
    REM переносим файлы на уровень вверх
    for /r "./" %%i in (*) do @move "%%i" ./
    REM удаляем пустые каталоги
    for /d %%d in (*) do @rmdir /s /q "%%d"
     

    но при совпадении имен он перезаписывает файлы (удаляя предыдущие), а нужно чтобы он их переименовывал, например, как это делает винда: файл, файл (2), файл (3)... Подскажите пожалуйста, что для этого можно использовать вместо move?

    Всего записей: 137 | Зарегистр. 26-01-2004 | Отправлено: 11:47 16-12-2015
    mbku

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ Спасибо !!!
    Интересно, что ответят DeathMOROZ-у - я про при совпадении переименовывал бы файл (2), файл (3).
    Часто возникает что имена файлов одинаковые, а заменять не хочется, вдруг по содержимому разные.

    Всего записей: 26 | Зарегистр. 03-08-2007 | Отправлено: 17:21 16-12-2015
    YuS_2



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

    Цитата:
    Подскажите пожалуйста, что для этого можно использовать вместо move?

    Как-то был вопрос подобного свойства. Не помню, кто предлагал решение, поэтому автора назвать не могу:

    Код:
    If not exist Screenshot???.jpg Goto NoScreenshots
    If not exist Screenshots\ Md Screenshots
    Set "Num=0"
    Set "StrNum="
    For /f %%A in ('dir /b Screenshot???.jpg') do If not exist Screenshots\%%A (Move %%A Screenshots >NUL ) else (call :_autonum "%%~A")
    exit
     
    :_autonum
    Set /a "Num+=1"
    Set "StrNum=000%Num%"
    Set "StrNum=%StrNum:~-3%"
    If exist "Screenshots\Screenshot%StrNum%.jpg" Goto :_autonum
    Move "%~1" "Screenshots\Screenshot%StrNum%.jpg" >NUL
    exit /b
    :NoScreenshots

    - перемещение папок в одну, без замены с переименованием...
    Используйте для своих целей алгоритм.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 08:34 17-12-2015
    snusmumricus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    народ а подскажите как можно в каталоге запускать bat файлы подряд их там где то около 100 ...скажем по дате их создания с ожиданием 2 мин после запуска каждого
    нашел только когда запуск идет  *.bat но нужно чтобы именно подряд по дате создания батника и чтоб в конце цикл остановился а не стал случайно запускать повторно батники  

    Всего записей: 13 | Зарегистр. 03-08-2007 | Отправлено: 14:57 21-12-2015
    Sphinx114



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

    Код:
    @echo off
    for /f "delims=" %%i in ('dir /b /a-d /od /tc *.bat') do (
    start "" "%%~i"
    ping -n 1 -w 120000 127.255.255.255 >nul
    )

    Запускает bat файлы из текущего каталога, подкаталоги не смотрит. Сортировка по дате создания, начиная с самого старого. Пауза 2 мин.

    Всего записей: 1201 | Зарегистр. 26-03-2011 | Отправлено: 03:07 22-12-2015
    snusmumricus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я не понял а пинг зачем?

    Всего записей: 13 | Зарегистр. 03-08-2007 | Отправлено: 09:37 22-12-2015
    nik4z



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

    Цитата:
    я не понял а пинг зачем?

    Пауза 2 мин.
     

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 09:47 22-12-2015
    snusmumricus

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

    Всего записей: 13 | Зарегистр. 03-08-2007 | Отправлено: 10:21 22-12-2015
    ipmanyak



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в Win 7 вместо паузы пингом  
    можно юзать встроенную команду
    timeout /T 60   время в секундах

    Всего записей: 11724 | Зарегистр. 10-12-2003 | Отправлено: 07:34 23-12-2015
    VitaminP



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как можно определить чем является параметр %1 файлом или папкой?

    Всего записей: 306 | Зарегистр. 28-08-2013 | Отправлено: 12:05 27-12-2015
    Inoz2000



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

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 12:21 27-12-2015
    nik4z



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

    Код:
    dir /b /a:d "%~dpnx1"

     
    Результат для каталога - сам каталог, для файла - файл не найден.

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 12:31 27-12-2015 | Исправлено: nik4z, 12:34 27-12-2015
    Inoz2000



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

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 13:25 27-12-2015
    nik4z



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Inoz2000
    Полный путь к каталогу или файлу, ~dp - это будет родительский, а не исходный  каталог.
     
    Да, лучше проверять
     

    Код:
    dir /b /a:-d "%~dpnx1"  

     
    Результат для файла - сам файл, для каталога - файл не найден.  
     

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 13:40 27-12-2015
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Почему же, команда dir для каталога выдаст файл не найден?
     
    Добавлено:
    про то, что ~dpnx можно заменить на ~f, я уже молчу
     
    Добавлено:
    первый вариант dir /a:d нормальный, но и мой CD не хуже.

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 13:56 27-12-2015
       

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