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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    а чем ваш код отличается от wolf0425
    я имею ввиду вот в этой части  

    Код:
    goto :eof
    :compare  
    if %~z1 LSS %~z2 (
        DEL /F /Q %2
        DEL /F /Q %3
        REN %1 %4
    ) else (
        DEL /F /Q %1
        DEL /F /Q %3
        REN %2 %4
    )  

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    Имеет смысл если папка Images и %tmp%  находятся на разных дисках. То есть меньше головки юзаться будут у жесткача, меньше записывания стирания если файлов много.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:17 08-03-2010
    lorents



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

    Цитата:
    Имеет смысл если папка Images и %tmp%  находятся на разных дисках. То есть меньше головки юзаться будут у жесткача, меньше записывания стирания если файлов много.

    понятно, я уже сделал так что все файлы будут находится в папке Images

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
        jpegtran -copy none -progressive "%%~fi" "%%~dpni_pro.tmp"
        jpegtran -copy none -optimize    "%%~fi" "%%~dpni_opt.tmp"
        call :compare "%%~dpni_pro.tmp" "%%~dpni_opt.tmp" "%%~fi"
        jhead -purejpg "%%~fi"
    )
    exit
    :compare
    if %~z1 leq %~z2 (copy %1 %3 & echo progressive) else (copy %2 %3 & echo optimize)
    del %1
    del %2
    exit /b

    Надеюсь я все правильно сделал

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

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

    Цитата:
    Надеюсь я все правильно сделал

    нет, впрчем если тебя не смущают лишние переписывания, то оставь. А полностью мой вариант в части:

    Цитата:
    goto :eof  
    :compare    
    if %~z1 LSS %~z2 (  
        DEL /F /Q %2  
        DEL /F /Q %3  
        REN %1 %4  
    ) else (  
        DEL /F /Q %1  
        DEL /F /Q %3  
        REN %2 %4  
    )  

    религия не позволяет использовать?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:58 08-03-2010
    lorents



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

    Цитата:
    нет, впрчем если тебя не смущают лишние переписывания, то оставь. А полностью мой вариант в части:  

    я не совсем вас понял, что Вы хотели сказать?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 14:08 08-03-2010 | Исправлено: lorents, 14:08 08-03-2010
    king_stiven

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

    Цитата:
    я не совсем вас понял, что Вы хотели сказать?


    Цитата:
    То есть меньше головки юзаться будут у жесткача, меньше записывания стирания если файлов много

    в твоём варианте  

    Цитата:
    :compare  
    if %~z1 leq %~z2 (copy %1 %3 & echo progressive) else (copy %2 %3 & echo optimize)  
    del %1  
    del %2  
    exit /b  

    как раз идут лишние переписывания.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:24 08-03-2010
    lorents



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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 14:44 08-03-2010
    pandomnik

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

    Всего записей: 4 | Зарегистр. 08-03-2010 | Отправлено: 19:47 08-03-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pandomnik куришь net use /?
    и сам пишешь.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:38 08-03-2010
    IndianaJonESS



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    немного не в тему: но срочно
    копирую пакетный файл с ПК ВистыПремиум на ПК с WinXP  и при копировании он меняет атрибуты: вместо "Пакетный файл Windows" становится "MS-DOS" из-за этого не запускается прога (К+ ломаный);  
    точнее: копирую пакетный файл на флэшку и он сохраняет свои атрибуты, а когда я флэшку вставляю в ПК с WinXP , то на этой же флэшке атрибуты:вместо "Пакетный файл Windows" становится "MS-DOS" из-за этого не запускается прога (К+ ломаный);  
    как быть? просто не знаю, может кто подскажет и не ругайте ))

    Всего записей: 114 | Зарегистр. 31-03-2008 | Отправлено: 22:25 08-03-2010
    wolf0425



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

    Цитата:
    он меняет атрибуты: вместо "Пакетный файл Windows" становится "MS-DOS"  

    для тебя является новостью, что аттрибутов "Пакетный файл Windows" и "MS-DOS"  - в файловой системе не существует?
     

    Цитата:
    из-за этого не запускается прога (К+ ломаный);    

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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 22:36 08-03-2010 | Исправлено: wolf0425, 22:38 08-03-2010
    IndianaJonESS



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    других причин не запуститься я не вижу ))
    на висте он запускается в режиме совместимости с WinXP SP2,  а на ХР в режиме совместимости с Win95 ну и с теми атрибутами о которых выше писал; когда запускаю на ХР, то на мгновение появляется черное окно ДОС со строкой запуска (быстр , не успеваю прочесть, но вроде ...)и вроде сообщением, что файл "не тот", ну не тот формат или не поддерживается...как то так; что скажешь?
    пс: думаю, что если поправить атрибуты, то запустится!
    >>для тебя является новостью, что аттрибутов "Пакетный файл Windows" и "MS-DOS"  - в файловой системе не существует?  
    да, это не атрибуты, но в Свойствах так отображается! то есть по разному в висте и хр

    Всего записей: 114 | Зарегистр. 31-03-2008 | Отправлено: 22:47 08-03-2010 | Исправлено: IndianaJonESS, 22:53 08-03-2010
    sergij

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

    Всего записей: 39 | Зарегистр. 14-03-2006 | Отправлено: 22:51 08-03-2010 | Исправлено: sergij, 02:24 10-03-2010
    wolf0425



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

    Цитата:
    да, это не атрибуты, но в Свойствах так отображается! то есть по разному в висте и хр
    это различия в настройках системы, влияют только на показ этого сообщения. на работу батников - не влияют.
     
    А не работает он у тебя по всем признакам от того, что не может найти какую-то прописанную в нем программу - т.е. смотреть надо на содержимое.

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



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

    Всего записей: 114 | Зарегистр. 31-03-2008 | Отправлено: 10:59 09-03-2010
    Dimau1981

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток.
    Имеется программа, fi_c44.exe. Нужен батник, который при запуске просил бы указать папку, из которой бы батник брал все имена *.jpg, и потом запускал бы программу fi_c44.exe с параметром в виде имени (например, "fi_c44.exe 1.jpg") и так последовательно для всех файлов картинок в указанной папке.
    Это прога для конвертации jpg в djvu.
    Помогите плиз, самому не одолеть...

    Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 15:36 09-03-2010 | Исправлено: Dimau1981, 15:40 09-03-2010
    01MDM



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

    Код:
     
    @echo off
    for %%i in (*.jpg) do fi_c44.exe "%%i"
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:15 09-03-2010
    Dimau1981

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ага, спасибо. Работает, но после обработки всех файлов уходит в цикл, и начинает по новой..

    Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 21:46 09-03-2010
    wolf0425



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

    Цитата:
    после обработки всех файлов уходит в цикл, и начинает по новой..
    значит так:

    Код:
    @echo off
    for /f "delims=" %%i in ('dir /b /a-d *.jpg') do fi_c44.exe "%%i"  

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:54 09-03-2010
    Dimau1981

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот спасибо, так нормально!
     
    Добавлено:
    В чем может быть проблема:
    Написал первый батник, в котором:
     
    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    set str="local.txt"
    set /p str=name file:
    echo %str%
    copy 1.bat %str%
    copy freeimage.dll %str%
    copy fi_c44.exe %str%
    cd %str%
    call 1.bat
     
    И второй, в котором собственно
    @echo off  
    for /f "delims=" %%i in ('dir /b /a-d *.jpg') do fi_c44.exe "%%i"  
     
    Так при запуске все куда надо копируется, но при call 1.bat говорит, что файл не найден? Если запустить 1.bat из %str%, то отрабатывает нормально...

    Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 22:16 09-03-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