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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    res2001



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

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



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

    Цитата:
    Image;Optimizer\Images\Pacific_Ocean_-_en.png;;  
    Image;Optimizer\Images\Pacific_Ocean_-_en.JPG;;  

     

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:55 25-06-2010
    res2001



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

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

    ну может тогда так:

    Код:
    if not exist "%~dp0Docs\advpng.exe" set "nofile=AdvPng "
    if not exist "%~dp0Docs\deflopt.exe" set "nofile=%nofile%DeflOpt "
    if not exist "%~dp0Docs\jhead.exe" set "nofile=%nofile%Jhead "
    if not exist "%~dp0Docs\jpegtran.exe" set "nofile=%nofile%Jpegtran "
    if not exist "%~dp0Docs\optipng.exe" set "nofile=%nofile%OptiPng "
    if not exist "%~dp0Docs\pngout.exe" set "nofile=%nofile%PngOut "
    if not exist "%~dp0Docs\prepng.exe" set "nofile=%nofile%PrePng "
    if not exist "%~dp0Docs\zlib.dll" set "nofile=%nofile%Zlib"
    if defined nofile (
    echo Слудющие файлы не найдены: %nofile%  
    pause>nulb  
    goto:eof
    )
     


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



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

    Цитата:
    ну может тогда так:  

    получилось, спасибо

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:18 25-06-2010
    res2001



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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    вроде как все работает, только соотношение %~z1/%2 выдает или 0 или 1, такое чувство что он округляет, можно сделать, до первого знака после запятой?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:33 25-06-2010
    res2001



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

    Код:
    set /a "perc=%~z1*1000/%2"
    if %perc% lss 1000 (
        echo %~nx1;%2;%~z1;%perc:~0,2%.%perc:~2,1% >>%logfile%
    ) else (
        echo %~nx1;%2;%~z1;%perc:~0,3%.%perc:~3,1% >>%logfile%
    )
     

    if нужен чтоб правильно выводился процент в случае если итоговый файл больше чем исходный.

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



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

    Цитата:
    сделай так:  

    ты уверен? у меня при этом не создается файл
    ладно, это не столь важно
     
    осталось разобраться в этом
    Пока тестировал заметил один баг, при вводе параметров, Как сделать чтобы в параметр оптимизации PNG можно было вводить только значение 1 и 2, и если пользователь вел другое значение, то повторить запрос, а если ничего не ввел и нажал на Enter, то пропустить оптимизацию файлов PNG
     
    Тоже самое в JPEG  
     
    И все проект готов полностью
     
    res2001
    еще раз большое спасибо

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lorents
    смотри окончательный вариант тут
     
    Добавлено:

    Цитата:
    осталось разобраться в этом
    Пока тестировал заметил один баг, при вводе параметров, Как сделать чтобы в параметр оптимизации PNG можно было вводить только значение 1 и 2, и если пользователь вел другое значение, то повторить запрос, а если ничего не ввел и нажал на Enter, то пропустить оптимизацию файлов PNG
    Тоже самое в JPEG  

    это тоже сделал
     
    Добавлено:
    тестируй

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    а точно, я и не заметил, только можно не много исправить, чтобы в параметр оптимизации PNG можно было вводить только значение 1 и 2, и если пользователь вел другое значение, то повторить запрос.
    тоже самое JPEG

    Цитата:
    а если ничего не ввел и нажал на Enter, то пропустить оптимизацию файлов PNG

    с этим все в порядке.

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:09 25-06-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lorents
    смотри там же
     
    Добавлено:
    поправил код
     
    Добавлено:
    и еще раз поправил. Довел до ума :savelog

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 23:20 25-06-2010
    lorents



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

    Цитата:
    смотри там же  

    Спасибо! просто выручили!

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 00:20 26-06-2010
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 08:16 26-06-2010 | Исправлено: king_stiven, 08:42 26-06-2010
    mugil_cephalus

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

    Цитата:
    проиграть какой-нибудь %windir%\media\ringin.wav (без открытия левых окон проигрывателей, конечно же)

    хотя от res2001
    Цитата:
    sndRec32.exe /play /close /embedding ding.wav  
    - имхо, замечательный вариант, но если запустить окно, например, wmplayer.exe скрыто ( hidden mode ) ?
    http://www.commandline.co.uk/chp/

    Цитата:
    For example:-  
    CHP notepad <-- runs notepad.exe in a hidden window

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:36 26-06-2010 | Исправлено: mugil_cephalus, 12:39 26-06-2010
    wolf0425



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

    Цитата:
    но если запустить окно, например, wmplayer.exe скрыто ( hidden mode ) ?  

    то какой-то юзер, который wmplayer.exe не пользовался - будет чесать репу: а чего звука нет и зачем setup_wm.exe в памяти висит.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 13:29 26-06-2010 | Исправлено: wolf0425, 13:32 26-06-2010
    jek1976



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть компьютерный класс - несколько стареньких машин в домене. Объем НЖМД на каждой машине - всего 20 гигов и после работы 10-15 разных юзеров, их профили (с фильмами, музыкой и всяким хламом) съедают все свободное место на дисках, после чего вход на компы оказывается невозможен (админ садится и удаляет вручную папки с профилями).
     
    Хотелось бы как-то автоматизировать процесс удаления папок с профилями, но так, чтобы не захватить папки админов, All Users, Default User.
     
    Что посоветуете?

    Всего записей: 1057 | Зарегистр. 15-04-2005 | Отправлено: 14:42 26-06-2010
    wolf0425



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

    Цитата:
    Хотелось бы как-то автоматизировать процесс удаления папок с профилями, но так, чтобы не захватить папки админов, All Users, Default User.  


    Код:
    @echo off
    pushd "C:\Documents and Settings\" && for /d %%a in (*) do 1>nul findstr /b /r /i /c:"rem %%a" <"%~f0" || echo rd /s /q "%%~a"
    exit
    rem administrator
    rem All Users
    rem Default User
    rem LocalService
    rem NetworkService
    проверишь список и echo сам сократишь

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:06 26-06-2010 | Исправлено: wolf0425, 15:08 26-06-2010
    us0r



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jek1976
    А там заюзить перемещаемые профили... Создать папки входа, которые после окончания работы монтируются на /dev/null (RD /S /Q %foldername% если правильнее =)) нельзя?
    Домен же всё же...

    Всего записей: 406 | Зарегистр. 06-12-2007 | Отправлено: 15:23 26-06-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нашел один баг в моем batch-файле
     
    ImageOptimizer.bat
     
    Ошибка в вводе параметров оптимизации, если пользователь сначала ввел неправильное значение параметра оптимизации, то проект повторяет запрос (здесь все нормально), в новом запросе, если пользователь не введя значение параметра оптимизации нажимает на Enter, то запрос повторяется, хотя по идеи он не должен это делать, т.е если пользователь не ввел значение оптимизации и нажал на Enter, то проект должен пропустить оптимизацию картинок данного формата.
     
    Ошибка при вводе параметра оптимизации картинок PNG и JPEG

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 15:51 26-06-2010 | Исправлено: lorents, 15:53 26-06-2010
    res2001



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

    Цитата:
    Ошибка в вводе параметров оптимизации, если пользователь сначала ввел неправильное значение параметра оптимизации, то проект повторяет запрос (здесь все нормально), в новом запросе, если пользователь не введя значение параметра оптимизации нажимает на Enter, то запрос повторяется, хотя по идеи он не должен это делать, т.е если пользователь не ввел значение оптимизации и нажал на Enter, то проект должен пропустить оптимизацию картинок данного формата.  

    Исправил
     
    Добавлено:
    wolf0425

    Цитата:
    pushd "C:\Documents and Settings\" && for /d %%a in (*) do 1>nul findstr /b /r /i /c:"rem %%a" <"%~f0" || echo rd /s /q "%%~a"  

    почему pushd, а не cd? popd ведь не используешь.
     
    Добавлено:
    Компы то сетевые. Надо сюда же прикрутить перебор сетевых компов для полного счастья

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:03 26-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