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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    PetrK



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в bat файле пишу "net share c$ /delete" и ставлю в автозагрузку. При запуске ОС в окне cmd.exe пишется:
    "Не запущена служба сервера.
     
    Для вызова дополнительной справки наберите NET HELPMSG 2114."
     
    Что написать в начале bat файла что бы выполнение оставшейся части bat файла происходило только после запуска службы сервера?

    Всего записей: 134 | Зарегистр. 27-05-2006 | Отправлено: 16:20 19-08-2009
    gale

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    example.bat:  
    @echo off  
    if "%1"=="" goto label  
    echo yes  
    goto :eof  
    :label  
    echo no  
    goto :eof  
    Хочется, чтобы проверка работала без ошибок при любом значении переменной %1.  
    Запускаю example "a" - всё хорошо работает.  
    Запускаю example "a - появляется сообщение об ошибке:  
    the syntax of the command is incorrect.

    Всего записей: 128 | Зарегистр. 09-03-2006 | Отправлено: 16:53 19-08-2009
    wolf0425



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

    Цитата:
    set "date=%2"
    set "date=%date:2009=09%"  

    ну кто так пишет? думаешь кроме 2009 никаких других года у дат не бывает?
    set "date=%date:.=%"
    set "date=%date:~0,4%%date:~-2%"
     
    а вообще полезнее иметь в имени дату в виде 20090819 -  чтоб сортировка по имени файла совпадала с сортировкой по дате.
    set "date=%date:~-4%%date:~3,2%%date:~0,2%"
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:04 19-08-2009 | Исправлено: wolf0425, 17:06 19-08-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    О завтра не думаю, о вчера не вспоминаю Живу текущим..  
    Спасибо за внимательность. Хоть кто-то видит чужие ляпы.  
     
    Добавлено:
    gale
     
    Попробуй так:

    Код:
     
    @echo off
    setlocal
     
    set "args=%1"
       
    if not defined args goto:label  
    echo %1  
    goto:eof  
     
    :label  
    echo no
     

     
     
     
    Добавлено:
    PetrK

    Цитата:
    в bat файле пишу "net share c$ /delete" и ставлю в автозагрузку. При запуске ОС в окне cmd.exe пишется:
    "Не запущена служба сервера.  

    Проверь запущена служба сервера или нет

    Код:
     
    @echo off
    sc query lanmanserver | findstr RUNNING 1>nul && (
        net share c$ /delete
    ) || (
        rem Если служба не отключена совсем, в противном случае смотри sc config
        sc start lanmanserver
        net share c$ /delete
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:21 19-08-2009 | Исправлено: 01MDM, 18:27 19-08-2009
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Прошу помощи, совсем голову сломал.
    Если файл с информацией, "поля" разделены табуляцией.
     
    Понимаю, что всё просто:

    Код:
     
    for /f "tokens=8,9,10,11 delims=    " %%i in (book.txt) do call :sss "%%i" "%%j" "%%k" "%%l"
     

    Но - "засада" оказалось в том, что в ряде строк один из параметров (седьмой) "опущен" и идёт два символа табуляции подряд.
    При разборе, в результате, получаю не 8-е, 9-е, 10-е и 11-е поля, а 9-е, 10-е и 11-е и 12-е поля.
    Я понимаю, что можно было бы попробовать так

    Код:
     
    for /f "tokens=7, 8,9,10,11 delims=    " %%i in (book.txt) do call :sss "%%i" "%%j" "%%k" "%%l" "%%ь"
     

    (8-е поле содержит строго ограниченный набор первых двух символов, которых ТОЧНО нет в 7), но... Временами 7-е поле содержит внутри себя кавычки... И, как следствие, разобрать нормально не получается.
     
    Спрашивается, что делать?
     
    Разбираемый файл формируется не мной, изменить не могу.
    Размер довольно велик - порядка 80'000строк.
    По "условию" сторонними утилитами не пользуемся.

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 22:10 19-08-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    Попробуй преобразовать двойную табуляцию в <tab><fake><tab>:
     

    Код:
     
    for /f "tokens=*" %%i in (book.txt) do call:parse "%%i"
    goto:eof
     
    :parse
    set "string=%~1"
    set "string=%string:<tab><tab>=<tab>fake<tab>%"
     
    for /f "tokens=7-11 delims=<tab>" %%1 in ("%string%") do something with %%1 %%2 %%3 ...
     

     
    Где <tab> - знак табуляции. Теперь ты будешь знать, что значение "fake" соответствует пустому полю.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:16 19-08-2009
    Dimmonchik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вечер добрый.
    Имеем конвертер "ffmpeg.exe", он запускается из батника со строкой
    ffmpeg -i "Имя файла" -ar 22050 -ab 56k -f flv -b 128k -s 320x240 -y "Имя файла.flv"
    Также имеется возможность сохранить кадр в картинку
    ffmpeg -i "Имя файла" -an -ss 15 -r 20 -vframes 1 -s 320x240 -f mjpeg -y "Имя файла.jpg"
    Задача состоит в том, чтоб пакетно все avi файлы переконвертировать в flv и сделть к ним снимки. Возможно ли такое? Если да то как это сделать? Заранее спасибо.

    Всего записей: 2 | Зарегистр. 19-08-2009 | Отправлено: 23:59 19-08-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sed v4.2 существует в варианте без dll?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 00:43 20-08-2009
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    Почти помогло, но:
    1) во втором for в качестве разделителя стал срабатывать ещё и пробел, а не только знак табуляции :(
    2) максимум можно обратиться к 9-му полю (мне нужно 12)
     
    вот пример кода:

    Код:
     
    @echo off
    chcp 1251 > nul
    for /f "tokens=* delims=" %%a in (book.txt) do call :parse %%a
    goto :eof
     
     
    :parse
    set "string=%*"
    set "string=%string:    =%"
    set "string=%string:=1%"
    set "string=%string:^"='%"
    echo %string%
    pause
    for  /f "tokens=9,10,12 delims=" %%I in ("%string%") do (
       echo "%1"
       echo "%2"
       echo "%3" )
     

    т.е. посылаем в parse, заменяем табуляцию на спецсимвол, сдвоенный спецсимвол - разделям, потом пытался заменить двойную кавычку на одинарную - не сработало, дальше просто через echo смотрю что получается.
     
    кусочек файла из 4-й строк реального Book.txt - здесь, первая строка - нормальная, вторая - сдвоенная табуляция, третья и четвёртая - с двойными кавычками.
     
    Добавлено:
    Dimmonchik
    Бежит по текущему каталогу и всем его подкаталогам, для каждого .avi - выполняется две команды

    Код:
     
    @echo off
    echo Please wait...
    for /r %%d in (.) do (
        cd %%d
        for %%f in (*.avi) do (
           ffmpeg -i "%%~df%%~pf%%~nf.avi" -ar 22050 -ab 56k -f flv -b 128k -s 320x240 -y "%%~df%%~pf%%~nf.flv"
           ffmpeg -i "%%~df%%~pf%%~nf.avi" -an -ss 15 -r 20 -vframes 1 -s 320x240 -f mjpeg -y "%%~df%%~pf%%~nf.jpg"  
           )
    )
     

    да, похоже - перестраховался... Наверное, и так сработает:

    Код:
     
    @echo off
    echo Please wait...
    for /r %%d in (.) do (
        cd %%d
        for %%f in (*.avi) do (
           ffmpeg -i "%%~nf.avi" -ar 22050 -ab 56k -f flv -b 128k -s 320x240 -y "%%~nf.flv"
           ffmpeg -i "%%~nf.avi" -an -ss 15 -r 20 -vframes 1 -s 320x240 -f mjpeg -y "%%~nf.jpg"  
           )
    )
     

    Т.е. обращаемся просто по имени, а не диск, каталог, имя...

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 00:45 20-08-2009 | Исправлено: Kirillhome, 21:01 20-08-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток.
     
    простите уж если повторяюсь но прочитать больше 600 страниц я не смог + поиск в гугле далеко меня не завел(
     
    в общем суть такова, что надо проверить значение переменной... т.е. число ли это. нужно именно целое число длинна не имеет значения. ( если есть предложения с маской то можно ограничится тогда только 1-4 символа т.е. для масок 9,99,999,9999 )
     
    и 2 проблемка нужно проверить переменную на принадлжность к времени... т.е. удовлетворяет ли она маске HH:MM:SS. если не сложно то с датой аналогично...
     
    Спасибо за внимание.

    Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 03:37 20-08-2009
    Unitaz



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    господа помогите добавить к имени файла имя(без путей) директории в которой он лежит ,изначально в батнике уже есть список имён файлов в директории.

    Всего записей: 2296 | Зарегистр. 28-06-2002 | Отправлено: 10:48 20-08-2009 | Исправлено: Unitaz, 10:48 20-08-2009
    king_stiven

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

    Цитата:
    надо проверить значение переменной... т.е. число ли это

     
    Приведи пример чисел, я понял так:
    12345
    93847650
    0938765432
    правильно
     
    2738t87
    0987,263
    234 567
    неправильно
     

    Цитата:
     то с датой аналогично...  

     
    09:12:31 or 2009:12:31 ?
    Одну и ту же переменную на три значения надо проверить?

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 10:53 20-08-2009
    Alukardd



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

    king_stiven
     
    числа нудны такие:
    1, 5, 40, 100, 764 вообщем по кол-ву знаков ограничения нет( для простоты можно гораничится 4, больше врядли будет задействовано ), 0 спереди волнует или нет не знаю точно - лучше убрать т.к. были случаи что воспринималось как 16х
     
    дата формата DD.MM.YYYY - проверку существования числа думаю сам накорябую, хотя условия в bat меня напрятают немного...(((

    Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 11:04 20-08-2009
    gale

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @echo off
    for /f %%a in ('fsutil fsinfo drivetype %1') do echo %%a%
     
    На экране отобразится строка текста, если переменной %1 передать параметр "string".
    На экране ничего не появится, если переменной %1 передать параметр "string, str"ing или string".
    Однако, если с консоли запустить fsutil fsinfo drivetype с любым из перечисленных параметров, то работает.

    Всего записей: 128 | Зарегистр. 09-03-2006 | Отправлено: 11:46 20-08-2009 | Исправлено: gale, 12:28 20-08-2009
    alfsoft

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Есть log-файл вида:
     

    Код:
     
    lmstat - Copyright (c) 1989-2007 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
    Flexible License Manager status on Mon 8/10/2009 11:26
     
    [Detecting lmgrd processes...]
    License server status: 744@Tri-server
        License file(s) on Tri-server: C:\AVEVA\FlexMan4.1\license.lic:
     
    Tri-server: license server UP (MASTER) v11.5
     
    Vendor daemon status (on Tri-server):
     
     cadcentre: UP v11.5
    Feature usage info:
     
    Users of PACK-HULL_DESIGN:  (Total of 6 licenses issued;  Total of 6 licenses in use)
     
      "PACK-HULL_DESIGN" v1.00, vendor: cadcentre
      floating license
     
        Tribon 20-13 20-13 (v1.00) (Tri-server/744 7140), start Mon 8/10 10:14
        intel VPO-01 VPO-01 (v1.00) (Tri-server/744 3674), start Mon 8/10 10:17
        panda 20-23 20-23 (v1.00) (Tri-server/744 3184), start Mon 8/10 10:53
        tribon 20-33 20-33 (v1.00) (Tri-server/744 5055), start Mon 8/10 8:24
        tribon 20-28 20-28 (v1.00) (Tri-server/744 1948), start Mon 8/10 11:05
        tribon 20-21 20-21 (v1.00) (Tri-server/744 9923), start Mon 8/10 8:07
     
    Users of PACK-INITIAL_GEOMETRY:  (Total of 1 license issued;  Total of 1 license in use)
     
      "PACK-INITIAL_GEOMETRY" v1.00, vendor: cadcentre
      floating license
     
        Kazan tribon-02 tribon-02 (v1.00) (Tri-server/744 2558), start Mon 8/10 9:18
     
    Users of PACK-INITIAL_HYDROSTATICS:  (Total of 2 licenses issued;  Total of 0 licenses in use)
     
    Users of CABLE-DESIGN:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of DESIGN-PLATFORM:  (Total of 45 licenses issued;  Total of 24 licenses in use)
     
      "DESIGN-PLATFORM" v1.00, vendor: cadcentre
      floating license
     
        Kazan tribon-02 tribon-02 (v1) (Tri-server/744 6070), start Mon 8/10 9:32
        TRIBON 41-25 41-25 (v1.0) (Tri-server/744 7723), start Mon 8/10 10:48
        TRIBON 30-16 30-16 (v1.0) (Tri-server/744 6246), start Mon 8/10 9:57
        Tribon 22-07 22-07 (v1.0) (Tri-server/744 459), start Mon 8/10 7:47
        Tribon 20-13 20-13 (v1.0) (Tri-server/744 1564), start Mon 8/10 10:14
        intel VPO-01 VPO-01 (v1.0) (Tri-server/744 3252), start Mon 8/10 10:17
        panda 20-23 20-23 (v1.0) (Tri-server/744 3355), start Mon 8/10 10:53
        tribon AM-01 AM-01 (v1.0) (Tri-server/744 4347), start Mon 8/10 10:49
        tribon 20-21 20-21 (v1.0) (Tri-server/744 5129), start Mon 8/10 8:07
        tribon 42-21 42-21 (v1.0) (Tri-server/744 4163), start Mon 8/10 10:05
        tribon 41-16 41-16 (v1.0) (Tri-server/744 10308), start Mon 8/10 7:42
        tribon 20-33 20-33 (v1.0) (Tri-server/744 7051), start Mon 8/10 8:24
        tribon 22-22 22-22 (v1.0) (Tri-server/744 5250), start Mon 8/10 8:10
        tribon 41-03 41-03 (v1.0) (Tri-server/744 7351), start Mon 8/10 10:49
        tribon 22-27 22-27 (v1.0) (Tri-server/744 9125), start Mon 8/10 8:11
        tribon AM-02 AM-02 (v1.0) (Tri-server/744 7885), start Mon 8/10 10:49
        tribon 41-22 41-22 (v1.0) (Tri-server/744 7643), start Mon 8/10 10:51
        tribon 50-27 50-27 (v1.0) (Tri-server/744 538), start Mon 8/10 10:49
        tribon 22-14 22-14 (v1.0) (Tri-server/744 2851), start Mon 8/10 11:00
        tribon 20-28 20-28 (v1.0) (Tri-server/744 5965), start Mon 8/10 11:05
        tribon 22-17 22-17 (v1.0) (Tri-server/744 3847), start Mon 8/10 8:02
        tribon 42-18 42-18 (v1.0) (Tri-server/744 2172), start Mon 8/10 7:58
        tribon 30-09 30-09 (v1.0) (Tri-server/744 6535), start Mon 8/10 7:52
        tribon 22-16 22-16 (v1.0) (Tri-server/744 738), start Mon 8/10 7:46
     
    Users of DGN2REV:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of DIAGRAMS:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of DWF-EXPORT:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of FATC:  (Total of 9999 licenses issued;  Total of 0 licenses in use)
     
    Users of ISODRAW:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of IVS2REV:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of LINKBR:  (Total of 9999 licenses issued;  Total of 0 licenses in use)
     
    Users of MARINE-DIAGRAMS:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of OUTFITTING:  (Total of 12 licenses issued;  Total of 12 licenses in use)
     
      "OUTFITTING" v1.00, vendor: cadcentre
      floating license
     
        TRIBON 30-16 30-16 (v1.0) (Tri-server/744 6344), start Mon 8/10 9:57
        TRIBON 41-25 41-25 (v1.0) (Tri-server/744 4761), start Mon 8/10 10:48
        tribon 42-18 42-18 (v1.0) (Tri-server/744 373), start Mon 8/10 7:58
        tribon 42-21 42-21 (v1.0) (Tri-server/744 1789), start Mon 8/10 10:05
        tribon 30-09 30-09 (v1.0) (Tri-server/744 4530), start Mon 8/10 7:52
        tribon AM-01 AM-01 (v1.0) (Tri-server/744 8144), start Mon 8/10 10:49
        tribon 41-16 41-16 (v1.0) (Tri-server/744 152), start Mon 8/10 7:42
        tribon 41-03 41-03 (v1.0) (Tri-server/744 9227), start Mon 8/10 10:49
        tribon 50-27 50-27 (v1.0) (Tri-server/744 1454), start Mon 8/10 10:49
        tribon AM-02 AM-02 (v1.0) (Tri-server/744 684), start Mon 8/10 10:49
        tribon 41-22 41-22 (v1.0) (Tri-server/744 9520), start Mon 8/10 10:51
        tribon 22-14 22-14 (v1.0) (Tri-server/744 8639), start Mon 8/10 11:00
     
    Users of PID-INTEGRATOR:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of PVS2REV:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of REVIEWAPPL:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
    Users of ROOM-DESIGN:  (Total of 12 licenses issued;  Total of 0 licenses in use)
     
     
     

     
    Хотелось бы с помощью bat-файла получить пропарсенный текст вида:
     

    PACK-HULL_DESIGN: 6/6
    Used by: VPO-01, 20-23, 20-33, 20-28, 20-21, 20-21
     
    PACK-INITIAL_GEOMETRY: 1/1
    Used by: tribon-02
     
    PACK-INITIAL_HYDROSTATICS:  0/2
     
    CABLE-DESIGN: 0/12

     
    То есть, выдирать названия модулей, используемых в лицензии. И если есть активные пользователи, выводить их в строку через запятую. Если пользователей нет, то просто писать общее количество лицензий/использованное количество.
     
    Как видно, все однотипные строки подчиняются одним и тем же правилам. Например, строка с пользователями начинается с четырех символов "пробел" и т.д.
     
    Как думаете, реально такое сделать? Спасибо.

    Всего записей: 1 | Зарегистр. 20-08-2009 | Отправлено: 16:23 20-08-2009
    ZolotnikOV



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

    Цитата:
    :starting    
    del /q abcd.xxx  
    del /q 000*.dll  
    goto starting

     
    он  работает по кругу просто тупо удаляя файли с папки где лежит. при етом процес етот идет всегда когда он запушен. его робота грузит процесcор с 15-18% до 60-70%
     
    как бы его оптимизировать чтоб он запускался, но основную функцию (удаление) начинал выполнять только когда файлы появляются в папке.  
    я думаю этим можно будет снять нагрузку с процесcора. верно?
    большое спасибо.

    Всего записей: 393 | Зарегистр. 26-11-2007 | Отправлено: 16:35 20-08-2009
    wolf0425



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

    Цитата:
    его робота грузит процесcор с 15-18% до 60-70%
     как бы его оптимизировать чтоб он запускался, но основную функцию (удаление) начинал выполнять только когда файлы появляются в папке.  
    надо не проверку обновления папки вставлять, а паузу на цикл - быстро повторяющаяся проверка будет ждать время ничуть не меньше самого удаления.
    добавь внутрь цикла  
    ping -n 2 -w 1000 localhost > nul
    это заставит цикл крутиться не чаще чем раз в секунду
     
     
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 16:50 20-08-2009 | Исправлено: wolf0425, 16:52 20-08-2009
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вопрос такой, точнее даже два..
    1) есть домен, надо закинуть на десктоп всем по файлику. Но! именно тому юзеру, который залогинившись в даный момент. Какую переменную искать и что писать -как-то не придумывается..  
    2) можно ли как-то дистанционно сертификаты (на конкретный сайт) инсталлить? Или это к каждому ходить и тыкать кнопками?  
     
    Добавлено:
    ZolotnikOV

    Цитата:
    но основную функцию (удаление) начинал выполнять только когда файлы появляются в папке.  

    if not exist %%  goto sleep
    if exist %% (
      del /q abcd.xxx  
      del /q 000*.dll  
      )
    sleep 1
     
    что-то вроде.. синтаксис неточно помню, но идея - проверка на существование, если нет - сразу в сон, если да - уничтожение и в сон на 1 минуту.

    ----------
    Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
    Пропеллер играет роль вентилятора, он останавливается -пилот потеет
    Аськи нету.

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 17:00 20-08-2009
    ZolotnikOV



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

    Цитата:
    это заставит цикл крутиться не чаще чем раз в секунду

    а если программа уже начнет использовать dll-ку.
    тогда ее невозможно будет удалить? правильно?
    может подскажите какой то другой выход?

    Всего записей: 393 | Зарегистр. 26-11-2007 | Отправлено: 17:13 20-08-2009
    bredonosec



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

    Цитата:
    а если программа уже начнет использовать dll-ку.

    а тупо запретить программе запись в папку? или с ошибкой вывалится?

    ----------
    Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
    Пропеллер играет роль вентилятора, он останавливается -пилот потеет
    Аськи нету.

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 17:28 20-08-2009
       

    Страницы: 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 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru