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

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



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

    Цитата:
    %A это параметр
    брр... автор ImageMagick знает толк в извращениях...
    так что ты в итоге хотел получить то этой командой? нафига тебе Альфа-канал?
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:54 10-07-2010 | Исправлено: wolf0425, 17:57 10-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Ну да! А ты чего хотел? Я же написал: tasklist то сам инициализировался успешно!

    Всего записей: 2041 | Зарегистр. 05-07-2008 | Отправлено: 17:57 10-07-2010 | Исправлено: ComradG, 17:58 10-07-2010
    wolf0425



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

    Цитата:
    Я же написал: tasklist то сам инициализировался успешно!  
    да пофиг как там tasklist инициализировался - его хоть на cd :: можно заменить, все равно напечатается 0

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:06 10-07-2010
    lorents



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

    Цитата:
    нафига тебе Альфа-канал?  

    приходится делить картинки на две группы с алафаканалом и без него.
    Есть способ увеличить серьезно оптимизацию Png с альфаканалом.
    а самое главное способ можно осуществить только через imagemagick

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

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



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

    Цитата:
    приходится делить картинки на две группы с алафаканалом и без него.  
    ну, а когда вышепроцитированная команда пишет %А - это convert.exe что хочет сказать? что альфаканала нет?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:18 10-07-2010
    Melhior



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

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

    а как сделать батник с виндовой кириллицей? чтоб и она нормально отображалась, и сообщения командной строки.

    Всего записей: 1255 | Зарегистр. 11-01-2004 | Отправлено: 18:19 10-07-2010
    king_stiven

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

    Цитата:
    Ну, типа:  
    c:\pagefile.sys 0 0\0d:\pagefile.sys 1024 2048\0e:\pagefile.sys 1024 1024

    То есть пробелов в пути никогда не бывает? Пример:
    c:\12 34\1.txt 0 0\0d:\pagefile.sys 1024 2048\0e:\pagefile.sys 1024 1024

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 18:19 10-07-2010
    Melhior



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

    Цитата:
    ну, а когда вышепроцитированная команда пишет %А - это convert.exe что хочет сказать? что альфаканала нет?  

    когда его нет, выдаётся False. когда есть - True.

    Всего записей: 1255 | Зарегистр. 11-01-2004 | Отправлено: 18:21 10-07-2010 | Исправлено: Melhior, 18:24 10-07-2010
    wolf0425



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

    Цитата:
    а как сделать батник с виндовой кириллицей? чтоб и она нормально отображалась, и сообщения командной строки.
    1. поставить консоли уникодный фонт, например идущую в комплекте виндов люсиду. тогда нормально отображаться будут не только кирилица, но и часть иероглифов и всякие умляуты.
    2. в начале батника переключить текущую кодовую страницу на виндовую кодировку.
    chcp 1251
    3. текст батника пишется и сохраняется в виндовой кодировке

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:27 10-07-2010
    kostyamks



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите написать bat чтоб при запуске сразу открывался Hosts фаил в блокноте который находится по адресу C:\Windows\System32\drivers\etc\hosts
    Зарание спасибо.

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 18:28 10-07-2010 | Исправлено: kostyamks, 18:29 10-07-2010
    wolf0425



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

    Цитата:
    когда его нет, выдаётся False. когда есть - True.
    мда, перегрев, я не из батника пробовал запустить ту же строку.
    Хоть бы ругнулась на неправильный формат, что-ли.
     
    ветвление делается тупо так:
    Код:
    T:\2\ImageMagick-6.6.3-0\convert.exe Clipboard-3.png -format "%%A" info: |find /i "false" >nul && echo No Alpha channel

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:30 10-07-2010 | Исправлено: wolf0425, 18:32 10-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kostyamks
    А что сложного передать на исполнение hosts notepad'у?

    Код:
    @echo off
    notepad %systemroot%\system32\drivers\etc\hosts
    exit /b

    Всего записей: 2041 | Зарегистр. 05-07-2008 | Отправлено: 18:35 10-07-2010 | Исправлено: ComradG, 18:39 10-07-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    kostyamks
    start "" notepad C:\Windows\System32\drivers\etc\hosts

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 18:36 10-07-2010
    lorents



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

    Цитата:
    ветвление делается тупо так:

    спасибо, теперь осталось решить с кириллицей  

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 18:58 10-07-2010 | Исправлено: lorents, 19:00 10-07-2010
    kostyamks



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ComradG
    res2001
     
    Спасибо выручили.

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 19:09 10-07-2010
    wolf0425



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

    Цитата:
    спасибо, теперь осталось решить с кириллицей
    да подсунуть короткое имя и успокоиться.
     

    Код:
    @echo off
    chcp 1251
    call :info кирилица.png
    exit
     
    :info
    T:\2\ImageMagick-6.6.3-0\convert.exe %~s1 -format "%%A" info: |find /i "false" >nul && echo No Alpha channel
    exit /b

     
    переменную какую-нибудь заведи для возвращения результата проверки из call...
     
    хотя что-то у меня воспоминания что у тебя в батнике и так дофига всяких for - так что отдельный call может и не нужен, имя и так наверняка в переменной цикла, там попросить короткое имя тоже можно.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 19:16 10-07-2010 | Исправлено: wolf0425, 19:27 10-07-2010
    nemoW

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день.
    Я хочу написать скиптик, который будет проверять наличие интернет-соединения и IP-адрес, и в зависимости от этого совершать различные действия.
    Алгоритм примерно такой:
    1. Если определенного интернет-соединения (VPN) нет, установить его.
    2. Запомнить IP интернет-соединения.
    3. "Заснуть" на определенный срок (пауза).
    4. По истечении паузы проверить, есть ли интернет-соединение.
    5. Если интернет-соединения нет, установить его.
    6. Сравнить IP интернет-соединения с предыдущим (из п.2).
    7. Если IP изменился, совершить определенное действие.
    Переход к п.2.
     
    Основная загвоздка - как получить IP адрес определенного соединения? Увы, я не программист и С++ с WinAPI не владею. Можно ли реализовать это на простых скриповых языках?
     
    UPD: нашел программку, которая копирует внешний IP в буфер обмена. Задача упрощается.

    Всего записей: 113 | Зарегистр. 10-04-2007 | Отправлено: 20:18 10-07-2010 | Исправлено: nemoW, 20:30 10-07-2010
    lorents



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

    Цитата:
    convert.exe: Improper image header `C:\кирилица.png' @ error/png.c/ReadPNGImage/3078.
    convert.exe: missing an image filename `info:' @ error/convert.c/ConvertImageCommand/2970.


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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 20:38 10-07-2010 | Исправлено: lorents, 20:39 10-07-2010
    wolf0425



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

    Цитата:
    При тестировании твоего batch выдает
    закомментарь @echo off и напиши какие ключики у команды выдаст.
    и то же самое с именем на символ длиннее.
     
    ты точно копипастом ключики копировал, ничего не напутал? у меня - работает.
     
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 22:23 10-07-2010 | Исправлено: wolf0425, 22:31 10-07-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    nemoW
    То что ты хочешь сделать вполне можно реализовать на батниках.
    Установить соединение можно с помощью rasdial, узнать IP соединения можно сканируя вывод ipconfig /all.

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