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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    magsimga

    Цитата:
    написать командный файл проверяющий наличие в памяти файл калькулятора и при его запуске принудительно закрывающий его, фай должен считать количесво запусков калькулятора и записывать время закрыти калькулятора

    Подробнее...
     
    qulinxao
    в gnuwin32 coreutils есть split (хоть и не особо умная утилита, но по строкам делит), 30мег по кб не более 30 тыс. строк:
    split -d -a 5 -l 30000 input.txt output_file_

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 13:37 24-11-2010
    magsimga

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    а вот по 1 заданию, где  косынка через @echo можешь написать?

    Всего записей: 27 | Зарегистр. 23-11-2010 | Отправлено: 13:50 24-11-2010
    smirnvlad

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

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 14:33 24-11-2010
    Frystail

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Здравствуйте. Хочу сделать патч для программы, но вот не пойму одну вещь. Мне нужно что бы патч прописывал данные в ветку реестра:  
    HKEY_USERS\S-1-5-21-3632820807-3824379993-3471774594-1000_Classes. Все бы ничего но на разных компьютерах цифры в названии ветки S-1-5-21-*****_Classes разные. Как сделать bat-файл, чтобы данные попали на конечном компьютере именно туда куда нужно?

    Всего записей: 186 | Зарегистр. 27-01-2007 | Отправлено: 14:56 24-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frystail
    если "туда куда нужно" это classes текущего пользователя то они в HKEY_CURRENT_USER\Software\Classes
    если для всех пользователей, то
    HKEY_LOCAL_MACHINE\Software\Classes

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

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

    Всего записей: 27 | Зарегистр. 23-11-2010 | Отправлено: 15:24 24-11-2010
    Cheerful_a_bear



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет Всем.
    Есть батник, работает на ура...
    Требуется изменить так, чтобы удалялись все файлы, во всех каталогах старше  N дней...
     
    @echo off
    setlocal enabledelayedexpansion
    set N=15
     
    call :raschet %date% days_to_today
     
    pushd "\\mo1srv04\f$\1c\"
    for /f "tokens=*" %%a in ('dir /b *.*') do (
       set filedate=%%~ta
       call :raschet !filedate:~0,10! days_to_date_of_file
       set /a raznitsa=%days_to_today%-!days_to_date_of_file!
       if !raznitsa! gtr %N% del /q "%%a"
    )
    goto :eof
    popd
     
    :raschet
    for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (
     
       set /a years=%%c*365+%%c/4
       set /a prev_year=%%c-1
       set /a result_year=%%c/4
       set /a result_prev_year=!prev_year!/4
       set /a vis=!result_year!-!result_prev_year!
       if !vis!==1 (
          if %%b==01 set /a years=!years!-1
          if %%b==02 set /a years=!years!-1
       )
     
       if %%b==01 set months=0
       if %%b==02 set months=31
       if %%b==03 set months=59
       if %%b==04 set months=90
       if %%b==05 set months=120
       if %%b==06 set months=151
       if %%b==07 set months=181
       if %%b==08 set months=212
       if %%b==09 set months=243
       if %%b==10 set months=273
       if %%b==11 set months=304
       if %%b==12 set months=334
     
       set days=%%a
       set firstsym=!days:~0,1!
       if !firstsym!==0 set days=!days:~1,1!
     
       set /a %~2=!years!+!months!+!days!
    )

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 15:57 24-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cheerful_a_bear
    во всех подкаталогах \\mo1srv04\f$\1c\
    dir /b *.* заменить на dir /s /b *.*

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как всем подпапкам/файлам текущего каталога прописать наследование прав (безопастности) как у текущего каталога?
    В смысле там в подкаталогах где-то разрывы наследования и добавления/убавления прав - надо весь этот разнобой убрать, права заменить на только наследуемые.
     
    интересует какой-то конкретный пример ключиков что надо прописывать в такой ситуации, а не просто отсылка к хэлпу cacls.exe

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:05 24-11-2010 | Исправлено: wolf0425, 17:45 24-11-2010
    magsimga

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

    Всего записей: 27 | Зарегистр. 23-11-2010 | Отправлено: 18:26 24-11-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cheerful_a_bear
    Если не поможет в шапке примеры.
     
    Добавлено:
    magsimga
    интригал (с)

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 18:36 24-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    заменяем все текущие права на папку C:\1234 и её подпапки и файлы (/T) на разрешение (/G) пользователю User полного доступа (F)
    cacls "C:\1234" /T /G User1:F
    тут User1 должен быть пользователь из под которого происходят изменения, а то будет отказ в доступе
    и добавляем (/E) на папку C:\1234 и все подпапки и файлы (/T) User2 права на чтение (R)
    cacls C:\1234 /E /T /G User2:R

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 18:38 24-11-2010
    magsimga

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

    Всего записей: 27 | Зарегистр. 23-11-2010 | Отправлено: 19:10 24-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    magsimga
    у всех команд есть очень подробная встроенная помощь, например
    tasklist /?
     
    я же не пишу 10000 знаков в минуту
    и не надо спамить форум бесполезными сообщениями, их можно (но лучше этого не делать зря) написать в личный ящик
     
    Подробнее...

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 19:17 24-11-2010 | Исправлено: smirnvlad, 19:18 24-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такая ситуация...
    Бат файл лежит на флешке, нужно, чтобы при запуске бат файла открывалась флешка с которой он был запущен...
    Какая при этом команда должна быть в бате?
    Заранее благодарю)

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
     
    помоги пожалуйста решить задачу в командном файле:
    сделать календарь на следующие 30 дней.

    Всего записей: 8 | Зарегистр. 24-11-2010 | Отправлено: 20:18 24-11-2010
    BorlandIMHO

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

    Цитата:
    нужно, чтобы при запуске бат файла открывалась флешка с которой он был запущен...
    Какая при этом команда должна быть в бате?  


    Код:
    @start \


    ----------
    http://www.imho.ws

    Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 20:27 24-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
    Огромное спасибо!
    Наконец то могу завершить свою прогу)

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 21:09 24-11-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    Цитата:
    заменяем все текущие права на папку C:\1234 и её подпапки и файлы (/T) на разрешение (/G) пользователю User полного доступа (F)
    cacls "C:\1234" /T /G User1:F  

    неужели я недостаточно понятно задал вопрос?  
    нужно не назначить уникальные права папке C:\1234\567 (с подпапками) с разрешением от юзера User1, а восстановить папке C:\1234\567 наследование комплекта прав от C:\1234
    при этом самой C:\1234 - ничего назначать не нужно, у неё всё уже назначено, и в ней кроме ветки C:\1234\567 ещё 10 тысяч других подпапок, которым тоже ничего заменять не нужно. А сейчас права C:\1234\567 (с подпапками) - назначены собственные (наследование разорвано), добавление через гуи прав C:\1234 на правах C:\1234\567 никак не сказывается...
     
    вышепредложенные ключики cacls "C:\1234\567" /T /G User1:F  
    - как раз отрывают наследование папки 567 от родителя, т.е. делают ровно то, что требуется устранить...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 02:26 25-11-2010 | Исправлено: wolf0425, 02:28 25-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    вопрос понятен, но cacls очень урезан и с его помощью это единственный вариант
    если нужно именно включить всем наследование, то нужно скачать с MS xcacls.vbs
    и включить всем наследование
    xcacls.vbs "папка" /i enable /F /S /T
    ещё есть icacls, но почему то не для всех ОС
     
    Levonid92

    Цитата:
    сделать календарь на следующие 30 дней

    в бат, чтобы узнать день недели, определить високосный ли год надо всё считать по формулам или использовать внешние средства, например vbs, а тогда уже на vbs и писать

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 07:10 25-11-2010 | Исправлено: smirnvlad, 07:20 25-11-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