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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    res2001



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

    Цитата:
    Т.е. если блокнот не убился, то запускается 1.exe после которого происходит pskill notepad.exe а затем запусткается 2.exe  

    taskkill || 1.exe & pskill & 2.exe

    Цитата:
    А что в кавычки вставлять?  

    ничего

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 21:55 11-06-2011 | Исправлено: res2001, 21:58 11-06-2011
    fire4x



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

    Цитата:
    taskkill || 1.exe & pskill & 2.exe

     
    А если их (1.exe, pskill, 2.exe) нужно запустить ОДНОВРЕМЕННО?
     
    P.S. Как сделать листинг в файл перечня "подветок первого уровня" ветки реестра HKEY_USERS?
    P.P.S. Как сделать листинг в файл названия подветки первого уровня ветки реестра HKEY_USERS (та которая очень длинная без "_Classes" на конце)?

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 22:22 11-06-2011
    res2001



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

    Цитата:
    А если их (1.exe, pskill, 2.exe) нужно запустить ОДНОВРЕМЕННО?  

    Запускай через start: start "" 1.exe & start "" pskill & start "" 2.exe

    Цитата:
    Как сделать листинг в файл перечня "подветок первого уровня" ветки реестра HKEY_USERS?  

    reg query /?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 22:32 11-06-2011
    fire4x



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

    Код:
    C:\>TASKKILL /F /IM notepad.exe   || notepad.exe   & notepad.exe
    Ошибка: Не удается найти указанный файл.
     
    C:\>pause
    Для продолжения нажмите любую клавишу . . .
     
    C:\>TASKKILL /F /IM notepad.exe   || start "" notepad.exe   & start "" notepad.e
    xe
    Ошибка: Не удается найти указанный файл.
     
    C:\>pause
    Для продолжения нажмите любую клавишу . . .

    А сообщения касательно ошибкок должны быть?
    Впрочем, несмотря на них все работает как надо.
     
     

    Цитата:
    Цитата:Как сделать листинг в файл перечня "подветок первого уровня" ветки реестра HKEY_USERS?  
     
     
    reg query /?

     
    Не получается. Мне нужны только названия самих подветок и только первого уровня. С параметром /s перебирается все содержимое.
     

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 23:03 11-06-2011
    Elroir



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

    Цитата:
    Не получается. Мне нужны только названия самих подветок и только первого уровня. С параметром /s перебирается все содержимое.


    Код:
     
    @echo off
    for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a>>users.txt
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:17 12-06-2011 | Исправлено: Elroir, 02:18 12-06-2011
    Talay



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
     
    У меня в папках "Мои Документы" и "Рабочий Стол" есть папки ("ФОТО" и "СДЕЛАНО") с разными файлами в процессе работы очень много накапливается за один день...
    мне надо в планировщике в заданное время очистить все папки от содержимого.
    помогите решить такую задачу
     
    спасибо за любой ответ

    Всего записей: 482 | Зарегистр. 07-08-2008 | Отправлено: 12:30 12-06-2011
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Talay
    так а в чём проблема то?
    rd/s/q что_удаляем
    о планировщике инет от инфы ломится

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 13:29 12-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Nagual
    Talay
    Папки то надо оставить, поэтому лучше
    del /f/q "%USERPROFILE%\Мои документы\ФОТО\*.*"
    и т.д. для остальных папок.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:10 12-06-2011
    Talay



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    можно подробно, я даун в этом... я незнаю как писать пути до папки (((
     
    Добавлено:
    res2001
    спасибо )) сделал, не идет (((

    Всего записей: 482 | Зарегистр. 07-08-2008 | Отправлено: 14:12 12-06-2011 | Исправлено: Talay, 14:14 12-06-2011
    res2001



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

    Цитата:
    спасибо )) сделал, не идет (((


    что не идет? Ошибки? Какие?

    Цитата:
    можно подробно, я даун в этом... я незнаю как писать пути до папки (((  

    Сделаешь bat файл вот с таким содержимым:

    Код:
    @echo off
    del /f/q "%USERPROFILE%\Мои документы\ФОТО\*.*"  
    del /f/q "%USERPROFILE%\Мои документы\СДЕЛАНО\*.*"  
    del /f/q "%USERPROFILE%\Рабочий стол\ФОТО\*.*"  
    del /f/q "%USERPROFILE%\Рабочий стол\СДЕЛАНО\*.*"  

    Для начала можешь потренироваться позапускать и посмотреть эффект, потом вставь в планировщик на нужное время.
     
    Проверил, у меня отрабатывает.
    Может не сработать, если у тебя папка с Моими документами и рабочим столом находится не по умолчанию.
    ЗЫ: да, у меня WinXP, если у тебя семерка, там может быть несколько иначе папки расположены. У меня семерки под рукой нет, проверить на ней не могу.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:32 12-06-2011
    wolf0425



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

    Цитата:
    Сделаешь bat файл вот с таким содержимым:
    del /f/q "%USERPROFILE%\Мои документы\ФОТО\*.*"  
    del /f/q "%USERPROFILE%\Мои документы\СДЕЛАНО\*.*"  

     
    вообще-то применительно к батнику для планировщика - %USERPROFILE% полезнее будет заменить значением, а сам батник запускать под системным аккаунтом, а не под пользовательским: многие пользователи не ставят на свой аккаунт пароль, под таким пользователем планировщик не запустит.
     
    и ещё напоминалка для Talay: если в батнике есть русские буковки - то надо или батник сохранять в 866 кодировке (как подразумевают все дающие тут советы) или chcp 1251 в начало батника вписывать.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:50 12-06-2011 | Исправлено: wolf0425, 15:52 12-06-2011
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Talay
    Код:
    @echo off&chcp 1251>nul
    if exist
    "%USERPROFILE%\Мои документы\ФОТО" cd "%USERPROFILE%\Мои документы\ФОТО"&rd/s/q .
    if exist "%USERPROFILE%\Мои документы\СДЕЛАНО" cd "%USERPROFILE%\Мои документы\СДЕЛАНО"&rd/s/q .
    if exist "%USERPROFILE%\Рабочий стол\ФОТО" cd "%USERPROFILE%\Рабочий стол\ФОТО"&rd/s/q .
    if exist "%USERPROFILE%\Рабочий стол\СДЕЛАНО" cd "%USERPROFILE%\Рабочий стол\СДЕЛАНО"&rd/s/q .

    Цитата:
    вообще-то применительно к батнику для планировщика - %USERPROFILE% полезнее будет заменить значением
    чем обоснуешь?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 18:05 12-06-2011
    fire4x



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

    Цитата:
    Код:  
    @echo off  
    for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a>>users.txt  
     

     
    А как сделать, чтобы в файл попадали названия веток, которые подходят по шаблону (например K??a*n).
    Образец шаблона будет находиться в бат-файле.

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 21:20 12-06-2011
    res2001



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

    Цитата:
    А как сделать, чтобы в файл попадали названия веток, которые подходят по шаблону (например K??a*n).  

    for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a | findstr /r "K..a.*n">>users.txt
    В findstr с ключем /r в качестве шаблона задаются регулярные выражения, а не принятые шаблоны для указания маски файлов. Читай findstr /?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 22:44 12-06-2011
    wolf0425



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

    Цитата:
    чем обоснуешь?  
    тем, что при запуске из-под системного профиля  - %USERPROFILE% будет совсем не тот, что при запуске из профайла юзера.
    А почему может вообще не получиться запустить из шедулера под профилем юзера - я выше тоже написал.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 22:48 12-06-2011 | Исправлено: wolf0425, 22:49 12-06-2011
    fire4x



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

    Цитата:
    Цитата:А как сделать, чтобы в файл попадали названия веток, которые подходят по шаблону (например K??a*n).  
     
     
    for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a | findstr /r "K..a.*n">>users.txt  
    В findstr с ключем /r в качестве шаблона задаются регулярные выражения, а не принятые шаблоны для указания маски файлов. Читай findstr /?

     
    Спасибо большое.
    А как вместо ветки реестра использовать путь к папке (например Windows)?

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 00:11 13-06-2011
    Elroir



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

    Цитата:
    А как вместо ветки реестра использовать путь к папке (например Windows)?

    Что имеется в виду?

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:15 13-06-2011
    fire4x



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

    Цитата:
    Цитата:А как вместо ветки реестра использовать путь к папке (например Windows)?  
     
     
    Что имеется в виду?

    Тот же самый пример. Только не для реестра, а для обычных папок: сбор названий подпапок в файл.

    Цитата:
    Код:  
    @echo off  
    for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a>>users.txt

     

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 05:59 13-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    fire4x
    dir /a:d /b c:\windows\* >dirs.txt

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 10:56 13-06-2011
    finupr

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


    Всего записей: 3 | Зарегистр. 11-05-2007 | Отправлено: 12:53 13-06-2011
       

    Страницы: 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 102 103 104 105 106 107 108

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru