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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    у меня есть пять файлов и мне надо их сравнить по размеру, у кого самый маленький оставить и переименовать в "%%~fi", а все остальные удалить
     

    Цитата:
    К тому же, в приведенном примере только 4 параметра (файла).

    там сравниваются по размеру два файла %%~dpni_0.png" и "%%~dpni_1.png", тот кто меньше весит остается и переименовывается, другой удаляется

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 18:14 21-06-2010 | Исправлено: lorents, 18:15 21-06-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tolyn77
    Цитата:
    подскажите как узнать все компьютеры в домене?  
    net view /domain
     
     
    Добавлено:
    lorents
    Цитата:
    у меня есть пять файлов и мне надо их сравнить по размеру

    вот тебе пример:

    Код:
    @echo off
    1>file1 echo.11
    1>file2 echo.222
    1>file3 echo.3
    1>file4 echo.4444
    1>file5 echo.55555
     
    call :compare file1 file2 file3 file4 file5 file.target
    exit
    :compare
    move /y %1 %6
    if %~z2 lss %~z6 (move /y %2 %6 ) else del %2
    if %~z3 lss %~z6 (move /y %3 %6 ) else del %3
    if %~z4 lss %~z6 (move /y %4 %6 ) else del %4
    if %~z5 lss %~z6 (move /y %5 %6 ) else del %5
    exit /b
     
    подпрограмме отдаются имена пяти файлов и куда писать наименьший.
    если какого-то из файлов нет - наверно будут проблемы, это не проверяется.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 20:49 21-06-2010 | Исправлено: wolf0425, 22:00 21-06-2010
    res2001



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

    Код:
    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    call :comparen %*
    goto :eof
     
    :comparen
    set minn=%~z1
    set minv=%1
    set /a count=1
    for %%i in (%*) do (
        if !count! neq 1 call :compare2 !minv! %%i
        set /a count+=1
    )
    echo минимальный размер !minv!=!minn!
    exit /b
     
    :compare2
    if %~z2 lss %~z1 (
        set minn=%~z2
        set minv=%2
    )
    exit /b
     

     
    На выходе из :comparen получаем в minv - имя файла с минимальным размером, в minn - размер этого файла.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 22:26 21-06-2010 | Исправлено: res2001, 22:28 21-06-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    я как пониманию file1 - это один из сравниваемый файлов, для чего echo.11?
     
    res2001
    интересный пример
     
    wolf0425, res2001
    Спасибо Вам большое!

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 22:51 21-06-2010
    wolf0425



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

    Цитата:
    я как пониманию file1 - это один из сравниваемый файлов, для чего echo.11?  
    там в начале  блок echo чтоб создать пять файлов разной длины.
    Не руками же их создавать  для проверки, тем более что лишние после проверки должны удаляться.
    А что -  без пояснений это не очевидно?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 22:53 21-06-2010 | Исправлено: wolf0425, 00:12 22-06-2010
    king_stiven

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

    Цитата:
    А что -  без пояснений это не очевидно?  

    Чукча не читатель, чукча писатель.

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 00:47 22-06-2010
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    на сколько я понимаю с 98 это не прокатит?, а вот на серваке есть такая оснастка computer and user, в ней есть список компьютеров, его как нибудь можно выципить?

    Всего записей: 1504 | Зарегистр. 07-09-2004 | Отправлено: 07:23 22-06-2010
    king_stiven

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

    Цитата:
    а вот на серваке есть такая оснастка computer and user, в ней есть список компьютеров, его как нибудь можно выципить?

    Да, разобрать вывод.

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 08:00 22-06-2010
    res2001



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

    Цитата:
    Можно вообще ограничиться этим:

    Код:
    if /i "%1"=="/c" (  
      goto:cabfile  
    ) else if /i "%1"=="/z" goto:zipfile  
    :message
    ...  

     

    Был тут не прав. Извини.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 08:38 22-06-2010
    tolyn77



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

    Всего записей: 1504 | Зарегистр. 07-09-2004 | Отправлено: 10:06 22-06-2010
    res2001



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

    Цитата:
    что значит разобрать вывод?  

    значит обработать вывод команды net view

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tolyn77
    Цитата:
    на сколько я понимаю с 98 это не прокатит?
    наверно, там  net.exe убогий ещё, а проверить сейчас не на чем.  
    а просто net view из win98 входящих в домен - точно не напишет про текущий домен?
    и for там убогий, кстати, как парсить - непонятно.
     
    psexec там тоже не работает, так что с полезностью списка некоторый напряг
     
    res2001
    Цитата:
    Был тут не прав. Извини.  
    И в чем же неправ ?
     
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 11:17 22-06-2010
    Mark_Titov



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ...Доброго дня всем.
     
    Подскажите сколько максимальная временная выдержка у sleep.exe?
     
    Благодарю...

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 11:23 22-06-2010
    res2001



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

    Цитата:
    И в чем же неправ ?  

    в последнем варианте убрал проверку %%2=""

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



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

    Цитата:
    в последнем варианте убрал проверку %%2=""
    в оригинале она входила отдельно в каждую ветку, и :zipfile и :cabfile ...
     
     
    Mark_Titov
    Цитата:
    Подскажите сколько максимальная временная выдержка у sleep.exe?  

    а что - есть сомнения что менее чем ~два миллиарда дней, ну т.е. 2147483647d ?
    ну тогда наверно столько же миллисекунд, конкретнее - это надо конкретную реализацию проверять.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 11:31 22-06-2010 | Исправлено: wolf0425, 11:50 22-06-2010
    Mark_Titov



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

    Цитата:
    а что - есть сомнения что менее чем ~два миллиарда дней, ну т.е. 2147483647d ?

    ...Ну значит 24 часа будет спать )))
    Были сомнения - раньше не ставил более чем на 6-8 часов.
    Спасибо wolf0425...

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 11:51 22-06-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mark_Titov
    может  
    sleep.exe /?  
    поможет?

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не подскажете утилитку чтоб с консоли звук выдать. Вроде была HS_BEEP но сейчас ничего найти не могу.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 11:53 22-06-2010
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    нет нет в 98 запускать ничего не надо, мне нужно что бы они попадали в список (как в net view)?
    заранее благодарен

    Всего записей: 1504 | Зарегистр. 07-09-2004 | Отправлено: 11:56 22-06-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mark_Titov
    Цитата:
    ..Ну значит 24 часа будет спать )))  
    ну если в её хэлпе написано, что задержку можно ставить в днях - то наверно же с сутками проблем нет.
    Мне толкьо страннА сама идея такую задержку в батник вносить, я бы в шедулер записал запуск батника каждые сутки. чем это плохо - я примеров не видел...

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 11:59 22-06-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru