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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    01MDM



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

    Цитата:
    shutdown /s t 0

    Здесь неудача будет всегда . Наверное можно при следующей загрузке отследить событие выключения \ остановки соответствующих служб и внести информацию в лог. У меня eventquery не работает (ОШИБКА: Не удается включить общий модуль "CmdLib.Wsc".), наверное не все скопировал с XP Pro. Поэтому проверить не могу.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:54 04-02-2008
    Wise_Kaa



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

    Цитата:
     
    for %%F in (*.*) do (
    find "%%F" report.txt
    if NOT %errorlevel%==0 echo %%F
    )
     

     
    Перебираем все файлы в папке, и ищем встречается ли имя файла в файле report.txt, если не встречается, то выводим имя файла.
    Проблема в том, что errorlevel, с помощью которого я планировал узнавать в теле for всегда равен 0, независимо от того, нашел он имя файла в report.txt или нет.  Как решить проблему, может кто подскажет вариант попроще? Вызывать еще один батник и передавать ему в каячестве параметра имя файла?

    Всего записей: 59 | Зарегистр. 04-01-2006 | Отправлено: 16:48 04-02-2008
    01MDM



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

    Код:
     
    for %%f in (*.*) do (find "%%f" report.txt 1>nul || echo %%f)
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:15 04-02-2008 | Исправлено: 01MDM, 17:28 04-02-2008
    VedunO



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

    Всего записей: 568 | Зарегистр. 13-01-2005 | Отправлено: 18:00 04-02-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VedunO
    в "шапке"
    Цитата:
    Работа с текстом, датой, и файлами »  

    ?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 18:13 04-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VedunO
    А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:15 04-02-2008
    Wise_Kaa



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    А что значат
    Цитата:
    ||
    ? и как быть, если надо при ненахождении в файле report.txt строки с именем файла еще действия определенные провести.

    Всего записей: 59 | Зарегистр. 04-01-2006 | Отправлено: 18:52 04-02-2008
    01MDM



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

    Цитата:
    и как быть, если надо при ненахождении в файле report.txt строки с именем файла еще действия определенные провести.  

     

    Код:
     
    @echo off
    for %%f in (*.*) do (
         find "%%f" report.txt 1>nul || (
              выполняем действия если в report.txt нет файла %%f
         )
    )
     

     
    Конструкция:

    Код:
     
    команда && действия при положительном рез-те || действия при отрицательном исходе
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:01 04-02-2008
    Wise_Kaa



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Большое-большое спасибо!
    А еще вопросик можно? Как назначить значению переменной размер указанного файла?
    set temp=~zo что-то типа этого?

    Всего записей: 59 | Зарегистр. 04-01-2006 | Отправлено: 19:18 04-02-2008 | Исправлено: Wise_Kaa, 20:50 04-02-2008
    Polizzay

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

    Всего записей: 83 | Зарегистр. 23-11-2003 | Отправлено: 22:05 04-02-2008 | Исправлено: Polizzay, 22:25 04-02-2008
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как снять галку наследования разрешений NTFS с помощью коммандной строки?

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 22:46 04-02-2008 | Исправлено: cluster, 22:47 04-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если перезаписать права, то галка наследования пропадает
    cacls c:\test /t /g user:f

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:10 05-02-2008 | Исправлено: 01MDM, 08:45 05-02-2008
    Sk09



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

    Всего записей: 389 | Зарегистр. 15-09-2005 | Отправлено: 10:07 05-02-2008
    01MDM



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

    Код:
     
    for %%i in (*.*) do set size=%%~zi
     


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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sk09
    Придётся все равно после вставки диска запускать батник, как скрытно запустить поищи в шапке, будет что то типа
    xcopy "E:\" c:\%date% /s /e /h /r /i

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:14 05-02-2008
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно запустить .cmd файл с параметрами из командной строки, но что б окно консоли было максимизированно. Делаю так:

    Код:
    cmd /c Start /wait /max test.cmd YY 1st

    Можно ли как то покрасивее это сделать?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 12:24 05-02-2008
    01MDM



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

    Код:
     
    mode con lines=n cols=m
    :: где n - кол-во строк, m=кол-во символов в строке
     

    И запускай, как раньше - через /max (что-бы координаты окна были 0x0)
     
    Или так

    Код:
     
    start /wait /max cmd /c "mode con lines=40 cols=120 && test.cmd"
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:50 05-02-2008 | Исправлено: 01MDM, 12:54 05-02-2008
    VedunO



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

    Цитата:
    А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.

     
    ну да, хотелось бы конечно так

    Всего записей: 568 | Зарегистр. 13-01-2005 | Отправлено: 14:07 05-02-2008
    GORA2



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

    Цитата:
    Или так  
    Код:  
    start /wait /max cmd /c "mode con lines=40 cols=120 && test.cmd"

    Мне нужен запуск  test.cmd не из батника, а из командной строки которая прописана в ini файле другой программы! А start можно запустить только из батника. Меня интересует корректна ли вообще моя строка и можно ли как то обойтись без cmd /c ?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 14:37 05-02-2008
    01MDM



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

    Код:
     
    :: Если в %path%
    cmd /c "start /max test.cmd"
     
    :: Если нет
    cmd /c "cd ^"C:\Path To\с пробелами^" && start /max test.cmd"
     
     

    или с помощью еще каких-нибудь утилит, которые могут установить размер окна.
     
    Зы. можно без cmd /c, просто путь к батнику (если не надо start /max)  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:39 05-02-2008 | Исправлено: 01MDM, 15:59 05-02-2008
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru