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

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

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

    Цитата:
    если нет файлов png в папке Images или его подпапках  

    проглядел

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:04 22-03-2010 | Исправлено: king_stiven, 23:07 22-03-2010
    wolf0425



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

    Цитата:
    Вы не могли бы показать это на моем примере

    как-то так, v2

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:51 22-03-2010 | Исправлено: wolf0425, 23:57 22-03-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Спасибо большое!
    Не знаю как Вас благодарить
    А можно сделать, чтобы все запросы на ввод, выводились сразу а не по частям?
    и можно сделать, если в папке Images или в подпапках нет файлов png и jpeg, выводилось сообщение что файлов нет, и батник закрывался
    Еще раз спасибо

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



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

    Код:
    call png.bat "%%~fi"

    то все работает, а если

    Код:
    call "%~dp0Docs\png.bat" "%%~fi"

    то уже не работает?
     
    png.bat
    Код:
    @echo off
    "%~dp0Docs\optipng.exe" -i0 -zc1-9 -zm1-9 -zs0-3 -f0-5 -full -force %1 > Docs\png.log || exit 1
    for /f "delims==,IDAT tokens=5" %%i in (Docs\png.log) do (
        set f=%%i
    )
    set f=%f:~1,1%
    del Docs\png.log
    "%~dp0Docs\pngout.exe" /k0 /n2 /f%f% %1 || exit 3

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 09:34 23-03-2010 | Исправлено: lorents, 09:35 23-03-2010
    wolf0425



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

    Цитата:
    call "%~dp0Docs\png.bat" "%%~fi"
    то уже не работает?  
    так так прописываешь ты это где? в каком батнике?
    где лежит этот батник и где лежит png.bat?
    судя по тексту png.bat = он запускается когда текущий каталог тот же, где лежал "Web Image Optimizer.bat"
    и судя по тому что без %~dp0Docs\ он запускается - то в одном каталоге с "Web Image Optimizer.bat" он и лежит, зачем ты командуешь искать другой батник, Docs\png.bat - не очень понятно.
     
    в подобных случаях для локализации ошибки  
    заменяешь call "%~dp0Docs\png.bat" "%%~fi"
    на echo call "%~dp0Docs\png.bat" "%%~fi"  
    (или просто добавляешь рядом)
    и смотришь что печатает - проверяешь сформировался ли путь и параметры так, как тебе было нужно.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:16 23-03-2010 | Исправлено: wolf0425, 10:32 23-03-2010
    METAJIJI

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот читаю я текстовый файлик

    Код:
     
    variable=123
    строка 2
     
    строка 3
    строка4
     

    вот таким батником

    Код:
     
    FOR /F %%i IN ('type "file.ini"') DO (
     
    ECHO %%i | FINDSTR /B "variable=" 1>nul && (
    ECHO.variable=My_Value>>my_file.ini
    ) ||  ECHO.%%i>>my_file.ini
     
    )
     

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

    Код:
     
    variable=My_Value
    строка
    строка
    строка4
     

    А хочется видеть такой:

    Код:
     
    variable=My_Value
    строка 2
     
    строка 3
    строка4
     

     
    Подскажите что поменять\дополнить.

    Всего записей: 27 | Зарегистр. 11-03-2010 | Отправлено: 11:39 23-03-2010 | Исправлено: METAJIJI, 12:26 23-03-2010
    wolf0425



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

    Цитата:
    FOR /F %%i IN ('type "file.ini"') DO ( ECHO %%i  
    А хочется видеть такой:  
    Подскажите что поменять\дополнить.  

    Код:
    for /f "tokens=1* delims=]" %%h in ('find /n /v "" ^< "file.ini"') do ( ECHO.%%i

     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:37 23-03-2010 | Исправлено: wolf0425, 12:42 23-03-2010
    Iacoyn



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

    Всего записей: 2382 | Зарегистр. 07-05-2002 | Отправлено: 12:50 23-03-2010
    murzik



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Бат файл запускается с CD-ROM.
    Как определить букву устройства этого CD-ROM'а ?

    Всего записей: 3269 | Зарегистр. 03-07-2002 | Отправлено: 13:38 23-03-2010
    king_stiven

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

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



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

    Цитата:
    echo %~d0

    спасибо - это то, что мне и требовалось.

    Всего записей: 3269 | Зарегистр. 03-07-2002 | Отправлено: 16:00 23-03-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    А нельзя ли объединить оба батника в один, т.е. таким образом проблема отпадет сама собой?

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

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

    Цитата:
    Народ, подскажите как из командной строки обновить systray - после выполнения taskkill там висят иконки выгружененых принудительно программ - если над ними провести мышкой - они исчезают.


    Код:
    taskkill /f /im explorer.exe && start explorer.exe

    а лучше так

    Код:
    taskkill /f /im explorer.exe>nul 2>&1 && explorer

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 21:29 23-03-2010 | Исправлено: mugil_cephalus, 23:11 23-03-2010
    wolf0425



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

    Цитата:
    А нельзя ли объединить оба батника в один, т.е. таким образом проблема отпадет сама собой?  
    так объедини, если раздельно они не нужны. дописываешь  

    Код:
    goto :eof
    :png
    rem текст батника png

    вызывать понятно call :png "%%~fi"

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:56 24-03-2010 | Исправлено: wolf0425, 10:57 24-03-2010
    lorents



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

    Цитата:
    так объедини, если раздельно они не нужны. дописываешь  

    Спасибо, и спасибо, за все что Вы сделали, для меня

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



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вопрос, чтоб перезаписать файл втихую и без подтверждений или вопросов, какой синтаксис нужен? (для использования в батнике - подряд всем удаленно перезаписать)
    copy /b "c:\.....\Desktop\file.url" "%PK_DIR%\desktop\*.*" /y
    ?  
    или дополнительно что-то нужно прописать?  
     
    Добавлено:
    зы, какой синтаксис использовать для того, чтоб пакетно в реестр каждому внести строку?

    Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 17:43 24-03-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Если не затруднит, посмотрите пожалуйста, все ли я правильно сделал
    Подробнее...
    И еще одна маленькая просьба, хотелось бы сделать, если в папке Images или в подпапках нет файлов png и jpeg, выводилось сообщение что файлов нет, и батник закрывался. т.е. когда проверяется png и их нет, то мы переходим к jpeg и вот если нет jpeg, то выводим сообщение что файлов нет и батник закрывается

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



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

    Цитата:
    т.е. когда проверяется png и их нет, то мы переходим к jpeg и вот если нет jpeg, то выводим сообщение что файлов нет и батник закрывается  
    т.е. просто молчаливое закрытие, как сейчас - тебя чем-то не устраивает?
     
    держи
     
    поставить goto:eof после секции :png - мог бы и сам догадаться, раз не в конец её добавил.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 19:42 24-03-2010 | Исправлено: wolf0425, 21:14 24-03-2010
    lorents



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

    Цитата:
    поставить goto:eof после секции : png - мог бы и сам догадаться, раз не в конец её добавил.  

    Спасибо, Вы прям Мой спаситель

    Цитата:
    т.е. просто молчаливое закрытие, как сейчас - тебя чем-то не устраивает?  

    Сейчас объясню зачем мне это, хочу сделать, чтобы при запуске батника, писались кто автор (если Вы не возражаете, то хотел бы написать Ваш ник), какие программы используются, их версии и как пользоваться программой. Устанавливаем паузу, и вот когда пользователь нажимает на Enter идет уже запуск скрипта, и и если картинок нет,то выводится сообщение об этом.
    Я просто планирую создать тему здесь на форуме, про оптимизацию картинок (PNG, JPEG, GIF)

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:09 24-03-2010 | Исправлено: lorents, 23:10 24-03-2010
    Oleg93



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    какой командой оптимальнее узнавать размер раздела?  
     
    p.s. если есть возможность, то тогда подскажите код, чтоб при заполнении винта на 99 процентов(т.е. оставалось не меньше заданного предела) заменялся определенный файл тхт на другой тхт.
     
    на данный момент идеи, это либо "брать" размер с dir БУКВ_ДИСКА либо как-то через diskpart или fsutil  
    но вот как сравнить размер, на данный момент не знаю
     
     

    Всего записей: 88 | Зарегистр. 23-10-2007 | Отправлено: 23:59 24-03-2010 | Исправлено: Oleg93, 00:23 25-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