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

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



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    нет можно только отрезать с конца или дописать нулей в конец. а какая чек сумма после этого получится труно сказать. а в чем вопрос?  
     
    Добавлено:
    вообще все вс. жизнь резали файлы тоталом. что не очень удобно в большиснвте случаев кроме когда его надо порезать на равные части

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:20 27-08-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 20:22 27-08-2010
    lorents



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

    Код:
    :compare
    if %~z1 LSS %~z2 (
        del /F /Q %2
        del /F /Q %3
        ren %1 %4
        pngout -q -f!f! %4
    ) else (
        del /F /Q %1
        del /F /Q %3
        ren %2 %4
        pngout -q -f!f! %4
    )
    exit /b

     
    Подскажите, правильно ли я сделал, мне надо обработать полученный файл через pngout?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:22 27-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    причем нулей условных. реально там не нули а мусор с винта. так пишет винда для быстроты. 16 битные приложения так же быстро забивают нулями но до 2 (4? не помню) гигов. но если читать потом этот мусор виндой там будут нули, а если 16 битным приложением будет виден мусор
     
    Добавлено:
    Free_Soft
    конечно изменится. на то она и чек сумма. если файл надо полечить - это лучше всего торрентом сделать
     
    Добавлено:
    lorents
    http://ru.wikipedia.org/wiki/PNGOUT
    возможно
     
     
    Добавлено:
    Free_Soft
    ну ты попробуй увеличивать и обрезать потом до реального размера можно без последствий
     
    Добавлено:
    скачай только еще раз я там наисправлял много чего.

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:24 27-08-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    я просто не знаю, будет ли видеть pngout переименованный файл, просто сейчас не могу протестировать.
     
    и еще один вопрос.

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png Images\*.jpg Images\*.jpeg Images\*.jpe') do (
        set /a TotalFiles+=1
    )

    если в папке нет картинок, то мне выдает "Файл не найден". как сделать, чтобы ничего не выдавало.

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:33 27-08-2010 | Исправлено: lorents, 20:34 27-08-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 20:37 27-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    еще что ли ошибка какая то. сто раз уже тут тренировался на файлах все целые хеш суммы на месте. и маленькие и большие
     
    Добавлено:
    Подробнее...
     
    Добавлено:
    Free_Soft
    антивирусы не проверяют хеш или какую другую суииу. в лаборатории антивируса програмисты пытаються определить уникальнуб последовательность в коде вируса (последовательность байтов в файле) которая позволит отличить этот файл от всех других файлов. потом эта последовательность ищеться в проверяемых файлах. так что изменение размера ничего не даст
     
    Добавлено:
    целая теория вирусов и куча спосбов обойти антивирусные проверки. найди какую нибудь статью про это

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:41 27-08-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:08 27-08-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:09 27-08-2010
    lorents



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

    Код:
    :compare
    if %~z1 LSS %~z2 (
        del /F /Q %2
        del /F /Q %3
        ren %1 %4
        pngout -q -f!f! %4
    ) else (
        del /F /Q %1
        del /F /Q %3
        ren %2 %4
        pngout -q -f!f! %4
    )
    exit /b  

    протестировал, не работает, подскажите, почему?
    pngout не видит %4
     
    Добавлено:
    вроде разобрался, осталось разобраться с этим

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png Images\*.jpg Images\*.jpeg Images\*.jpe') do (
        set /a TotalFiles+=1
    )  
     

     если в папке нет картинок, то мне выдает "Файл не найден". как сделать, чтобы ничего не выдавало.

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:58 27-08-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ммм.. а как в переменную передать путь?
    задаю
    Код:
    set ospp="%ProgramFiles(x86)%\Common Files\microsoft shared\OfficeSoftwareProtectionPlatform"

    но переменная пустая... есть ограничение по длинне?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 23:01 27-08-2010
    wolf0425



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

    Цитата:
    если в папке нет картинок, то мне выдает "Файл не найден". как сделать, чтобы ничего не выдавало.

    in ('dir /b /s /a-d Images\*.png Images\*.jpg Images\*.jpeg Images\*.jpe 2^>nul') do (  
     
    Добавлено:
    если файлов много имеет смысл на подсчет напрячь find:

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png Images\*.jpg Images\*.jpeg Images\*.jpe 2^>nul ^| find /c /v "" ') do set TotalFiles=%%i
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:16 27-08-2010
    lorents



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

    Цитата:
    если файлов много имеет смысл на подсчет напрячь find:  

    а вот этого я не знаю, сколько файлов будет. Думаю лучше сделать, как Вы написали.

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

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли данные выдрать из html файла(седом например) и вставить в ексель?
     
    Добавлено:
    можно ли выдранные из html данные вставить в ексель?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:29 28-08-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 13:08 28-08-2010
    01MDM



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

    Код:
     
    echo %time:~0,-3%
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:28 28-08-2010 | Исправлено: 01MDM, 13:29 28-08-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 13:35 28-08-2010
    skatet

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

    Цитата:
    в примерах runas /? написано, что команда запуска программы должна быть в кавычках, если содержит пробелы  

    -спасибо друг все получилось, просто я не знал про экранирование кавычек

    Всего записей: 38 | Зарегистр. 28-08-2008 | Отправлено: 16:07 28-08-2010
    Nikoderiko

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос:
    Нужно создать в указанной папке 1000 одинаковых файлов с номерами от 2001.htm до 3000.htm, и одинаковым текстом (допустим, просто <html><body>text</body></html>).
     
    Как поступить?

    Всего записей: 808 | Зарегистр. 17-07-2002 | Отправлено: 00:47 29-08-2010
    bomzzz



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

    Цитата:
     
    set /a count=0
    :next
    set /a count=%count%+1
    echo ^<html^>^<body^>text^</body^>^</html^>>2%count%.htm
    if not %count%==3001 goto next
     

     
    как быть с нулями сам придумывай
     
    Добавлено:
    ну разбей на четыре цикла. для единиц десятков сотен и тысяч. я не знаю как форматировать строку

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 00:58 29-08-2010 | Исправлено: bomzzz, 01:05 29-08-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