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

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

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

    странно, вроде бы я ничего не напутал. с кириллицей работает.

    Цитата:
    C:\>rem @echo off
     
    C:\>chcp 1251
    Текущая кодовая страница: 1251
     
    C:\>call :info Я.png
     
    C:\>convert.exe C:\Я.png -format "%A" info:   | find /i "false"   1>nul  && echo No Alpha channel
    convert.exe: Improper image header `C:\Я.png' @ error/png.c/ReadPNGImage/3078.
    convert.exe: missing an image filename `info:' @ error/convert.c/ConvertImageCommand/2970.
     
    C:\>exit /b
     
    C:\>pause
    Для продолжения нажмите любую клавишу . . .


    Цитата:
    C:\>rem @echo off
     
    C:\>chcp 1251
    Текущая кодовая страница: 1251
     
    C:\>call :info Ты.png
     
    C:\>convert.exe C:\Ты.png -format "%A" info:   | find /i "false"   1>nul  && echo No Alpha channel
    convert.exe: Improper image header `C:\Ты.png' @ error/png.c/ReadPNGImage/3078.
    convert.exe: missing an image filename `info:' @ error/convert.c/ConvertImageCommand/2970.
     
    C:\>exit /b
     
    C:\>pause
    Для продолжения нажмите любую клавишу . . .


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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:58 10-07-2010
    nemoW

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    А как вырезать из выдачи ipconfig нужный кусок?

    Всего записей: 113 | Зарегистр. 10-04-2007 | Отправлено: 03:36 11-07-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    Цитата:
    странно, вроде бы я ничего не напутал. с кириллицей работает.
    очень странно - у тебя %~s1  в русской кодировке, у меня - обычно в английской. хотя с Я.png - та же фигня что у тебя.
    ну и когда я просил на символ длиннее - я имел в виду на символ длиннее чем у предыдущего примера (кирилица), а не в два символа ... ладно, проехали.
     
    чего с этим кривым convert.exe делать то...  
    кроме временного переименовывания/копирования картинки в английское имя - в голову ничего уже не приходит.  
    сам напишешь, надеюсь?
     
    nemoW

    Цитата:
    res2001
    А как вырезать из выдачи ipconfig нужный кусок?
    пропустить вывод через findstr .
    а вообще - поищи rasdial поиском по версии для печати, может найдешь похожий пример.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 09:50 11-07-2010 | Исправлено: wolf0425, 09:53 11-07-2010
    res2001



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

    Цитата:
    А как вырезать из выдачи ipconfig нужный кусок?

    Если сам не сможешь давай сюда вывод ipconfig и имя подключения, помогу.

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



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

    Цитата:
    кроме временного переименовывания/копирования картинки в английское имя - в голову ничего уже не приходит.  

    у меня эта же идея было, я сейчас спросил на их официальном форуме, подожду, может кто подскажет

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 10:57 11-07-2010
    wolf0425



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

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

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



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

    Цитата:
    явный же баг...

    может баг, а может сделано специально
     
    сейчас копался в интернете, и там совет попробовать использовать Unicode (UTF-8)
    как это можно сделать?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 11:16 11-07-2010 | Исправлено: lorents, 11:26 11-07-2010
    mugil_cephalus

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

    Цитата:
    Код:setlocal enabledelayedexpansion  
    set "cnt=1"  
    for /f "tokens=3" %%a in ('reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles ^|more +4') do (  
    set "PagingFiles!cnt!=%%~a"  
    set /a cnt=!cnt!+1  
    )  
    set PagingFiles  
    pause  

    у меня все работает  
    листинг
    link
    включи эхо

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:09 11-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Melhior
    wolf0425
    Ну так мне привести пример батника с %errorlevel% относительно прошлых постов, раз никто не догадался как это реализуется?

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:13 11-07-2010
    wolf0425



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

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

    Цитата:
    и там совет попробовать использовать Unicode (UTF-8) как это можно сделать?
    а что ты это здесь то спрашиваешь?
    спрашивай пример батника у того умника, который это тебе посоветовал, заодно и нам расскажешь.
     
     
    ComradG
    Цитата:
    Ну так мне привести пример батника с %errorlevel% относительно прошлых постов раз никто не догадался как это реализуется?
    это с чего у тебя видения что "никто не догадался как" реализовать?  
    пока только увидели что ты привел заведомо нерабочий пример, не боле того.
     
    приведешь рабочий - может он кому-то нужен, хотя точно не мне, я никаких примеров не просил, и как правильно пользоваться  %errorlevel%  - вполне знаю.
    а также знаю что в описанном выше случае  устанавливаемый программой %errorlevel% помочь ничем не мог - он всегда 0, так что привести ты можешь только "пример батника с %errorlevel%" для случая сферической лошади в вакууме.
    Хотя если он не будет таким же безграмотным как в прошлый раз - то может хоть ты сам запомнишь как правильно писать, и больше конструкцию | echo %errorlevel% мы от тебя не увидим.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:14 11-07-2010 | Исправлено: wolf0425, 12:36 11-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Жалуйся в ООН. Хочешь показать насколько ты крут - иди в соседнюю ветку получать свои десять баксов.

    Код:
    @echo off
    2>nul cd ::
    if %errorlevel%==0 goto:done
    :fail
      echo Execution failed
      echo return value = %errorlevel%
      goto:eof
    one
      echo Execution succeded
      echo return value = %errorlevel%
      goto:eof
    exit /b

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:37 11-07-2010
    mugil_cephalus

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

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



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

    Код:
    что-то вроде
    tasklist /fi "windowtitle eq notepad" | echo %errorlevel%  

    tasklist можно заменить на cd :: - это ничего не меняет
    для облегчения раздумий можешь медитировать сразу над результатами печати  

    Код:
    @echo off
    2>nul cd :: | echo %errorlevel%  
    2>nul cd ::
    2>nul cd :: | echo %errorlevel%

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:42 11-07-2010 | Исправлено: wolf0425, 13:01 11-07-2010
    lorents



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

    Цитата:
    а что ты это здесь то спрашиваешь?  

    я прочитал это на одном форуме, но работает этот способ или нет, там нет подтверждения.

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 13:04 11-07-2010 | Исправлено: lorents, 13:05 11-07-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    а разве не windowtitle eq untitled - notepad ?  
     
    зато нашел как получить errlvl=1

    Код:
    chcp 1251>nul
    tasklistEN /fi "windowtitle eq "Безымянный - Блокнот""
    echo._%errorlevel%_
    pause

    tasklitsEN - eng vers.
     
     
     
    Добавлено:
    lorents

    Цитата:
    я прочитал это на одном форуме, но работает этот способ или нет, там нет подтверждения.

    а ты попробуй

    Код:
    chcp 65001>nul
    ren c:\я.png ю.png
    call :info ю.png
    и т.д..........

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



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

    Цитата:
    а разве не windowtitle eq untitled - notepad ?
    да пофиг, %errorlevel% то все равно 0. Хотя в твоем варианте ещё и может написать в консоль что типа есть такое окно.
     
    Но у ComradG была ошибка в том, что %errorlevel% на той же строке что и комманда, и печатается не результат выполнения tasklist а %errorlevel% от предыдущей строки батника, см. что печатает мой пример.
     
    Добавлено:

    Цитата:
    а ты попробуй  
    а слабо самому пробовать перед тем как такое как советовать?
    не работает оно так.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:03 11-07-2010 | Исправлено: wolf0425, 14:08 11-07-2010
    mugil_cephalus

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

    Цитата:
    может написать в консоль что типа есть такое окно.

    да, такая дифференцация

    Цитата:
    Но там ошибка в том, что %errorlevel% на той же строке что и комманда, и напечатается не результат выполнения tasklist а %errorlevel% от предыдущей строки батника, см. мой пример.

    та ошибка сразу видна
     
    Добавлено:

    Цитата:
    а слабо самому пробовать перед тем как такое как советовать?  
    не работает оно так.

    у меня нет того convert.exe , только win built-in ( другой )

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



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

    Цитата:

    Цитата:
    а слабо самому пробовать перед тем как такое как советовать?  
    не работает оно так.

    у меня нет того convert.exe  
    а хоть с какой-то другой командой попробовать?
    например  

    Код:
    chcp 65001
    1>%~n1 echo 123
    echo 123
     
    не создает никакого файла и ничего не печатает на экран

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:26 11-07-2010 | Исправлено: wolf0425, 14:37 11-07-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    ничего не пойму, порнография какая-то, всю консоль измучил, даже диагностировать не могу - в чем дело
    и сохранял батник в utf-8 через блокнот
    объсни хоть что там происходит, дальше chcp 65001 не идет...  
    может cmd /u попробовать - ?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 14:58 11-07-2010
    wolf0425



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

    Цитата:
    объсни хоть что там происходит, дальше chcp 65001 не идет..
    именно то и происходит, что дальше не идет, т.е. нужен рабочий пример использования UTF-8 в батнике.
     

    Цитата:
    может cmd /u попробовать - ?
    чего спрашивать то - попробуй...
    у меня впечатление что этот ключик просто навсегда переключает вывод в 1200 = UTF-16 (Little endian), а кодировка кода ему по барабану.
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:15 11-07-2010 | Исправлено: wolf0425, 15:25 11-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