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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Куда-то wolf0425 пропал, никаких идей не подкидывает.
    res2001
    Есть какие-нибудь идеи, не на счет хуков клавы Win, а вообще? А то я тут на VBScript'е написал игрушку от нефиг делать, на батнике рисую генератор этой vbs-ки.
    P.S>Фига! Аманда - здешняя медсестра - устроила стриптиз в често немецкой сборной надо думать
     
    Добавлено:
    P.S2> Извиняюсь за , но что за галюны с форумом-то?

    Всего записей: 2041 | Зарегистр. 05-07-2008 | Отправлено: 21:56 03-07-2010
    wolf0425



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

    Цитата:
    О каком консольном окне ты говоришь? там же start /b - ничего висеть не должно.  

    у тебя откровенное непонимание того, для чего придуман start /b
    хочется скрыть окно просцесса - юзай hstart.exe или cmdow.exe или запусти через шедулер или через vbs
     
    Добавлено:
    Цитата:
    Ну а я ей полузуюсь постоянно: Win+E, Win+F, Win+D, Win+M, - и это далеко неполный список.  
    мне для этого всего хватает правого Win

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 22:21 03-07-2010 | Исправлено: wolf0425, 22:24 03-07-2010
    ComradG



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

    Цитата:
    у тебя откровенное непонимание того, для чего придуман start /b

    На то ведь есть ты

    Цитата:
    хочется скрыть окно просцесса

    Да не хочется вовсе. А про

    Цитата:
    или через vbs

    я как раз упомянул в посте выше.
    И потом я просил идей вообще подкинуть. А то уже от VBScript'a, что пишу Wu Tangu малость крыша едет. Да и шум от победы немцев покоя не дает. Подкин задач на батах?
     
    Добавлено:

    Цитата:
    мне для этого всего хватает правого Win

    Каждому свое

    Всего записей: 2041 | Зарегистр. 05-07-2008 | Отправлено: 22:34 03-07-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, почему у меня кириллица отображается правильно, а у других людей символами
     
    ImageOptimizer.bat
     
    Кодировка ANSI

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 13:22 04-07-2010
    res2001



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

    Цитата:
    Подскажите, пожалуйста, почему у меня кириллица отображается правильно, а у других людей символами  

    Видимо шрифты в виндах кривые. Выставь для консоли Lucida Console, может поможет.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    со шрифтами все нормально, я проверил на двух компах. вместо кириллицы, непонятные символы, а у меня все ок. попробуй у себя, пожалуйста

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 16:00 04-07-2010
    res2001



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

    Цитата:
    у тебя откровенное непонимание того, для чего придуман start /b  

    Ну просвети нас, неразумных. Я тож несколько страниц назад на эти грабли наступал
    На сколько я понимаю start /b создает новый процесс, но вывод перенаправляет в текущее консольное окно. А если запуск происходит не из консоли, то окно консоли все равно создается куда и направляется вывод.
    Короче, бардак получается конкретный, как ты и писал.  
    Не понимаю как при нескольких запущенных подобным образом процессов можно работать в консоли.
    Видимо работа в этом случае и не подразумевается - запустил скрипт из которого создалось несколько процессов с помощью start /b, а потом следишь за выводом, пока они сами не завершаться.
     
    Добавлено:
    lorents
    Попробовал - все ок! Батник сам тоже должен быть сохранен в 1251.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    можешь скинуть свой batch?

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 16:33 04-07-2010
    wolf0425



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

    Цитата:
    Видимо работа в этом случае и не подразумевается - запустил скрипт из которого создалось несколько процессов с помощью start /b, а потом следишь за выводом, пока они сами не завершаться.  
    угу, типа того. а WinKey.exe от ComradG - он вообще-то ввод ловит и на Ctrl-C - молча завершается, так что иметь его в фоне в текущем окне, где ещё что-то делаешь... занимательно.
    А вообще программка временами полезная, не вседа же годится запрещение кнопки "насмерть". Но я все-же скомпиленный noWinKey.exe себе в утилиты кинул, а не предоставленный  ComradG генератор исходника с вызовом компилятора
     
    lorents

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
     
       
     
    Добавлено:
    а если конвертировать batch в exe, то это проблема решится с кириллицей?

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 17:58 04-07-2010 | Исправлено: lorents, 17:58 04-07-2010
    Ex0dus



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть многостраничный вордовский файл. Периодически в нем появляется строчка "TEST".
    Как пронумеровать все эти строчки по порядку. Чтобы получилось:
    TEST 1
    ....
    TEST 2
    ....
    TEST 3
    и так далее.
    Макросы, батники?

    Всего записей: 354 | Зарегистр. 15-05-2005 | Отправлено: 19:01 04-07-2010 | Исправлено: Ex0dus, 19:04 04-07-2010
    wolf0425



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

    Цитата:
    а если конвертировать batch в exe, то это проблема решится с кириллицей?
    с чего бы это её решиться?
    скомпиленный экзешник последовательно  
    - распаковывает из себя исходный текст батника
    - запускает выполнение батника обычным способом
    - по закрытии cmd.exe - удаляет распакованный батник и, возможно, другие временные файлы.
    в настройки фонта консоли юзера - запускальщик не лазит, ему это незачем.
    ищи по сранице для печати последнюю версию батника "кракозябрам нет"...
     
    Ex0dus
    Цитата:
    многостраничный вордовский файл. Периодически в нем появляется строчка "TEST". Как пронумеровать
    а какой смысл в раздел батников такой вопрос писать? пиши в раздел ворда - там может объяснят как на вордбейсике нумерацию сделать, или как пометить все такие строки стилем с полем автонумерации.

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



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

    Код:
    @echo off
    chcp 1251>nul
    title Я прога
     
    "%CD%\reg.exe" query "HKCU\Console" /s|findstr /i /r FaceName.*Terminal 1>nul && (
     
    for /f "delims=" %%A in ('""%CD%\reg.exe" query "HKCU\Console"" ^|findstr /b /i /r HKEY_CURRENT_USER\\Console\\.') do "%CD%\reg.exe" delete "%%~A" /f  
     
    "%CD%\reg.exe" add "HKCU\Console" /v FontSize /t REG_DWORD /d 1048576 /f
    "%CD%\reg.exe" add "HKCU\Console" /v FontFamily /t REG_DWORD /d 54 /f
    "%CD%\reg.exe" add "HKCU\Console" /v FontWeight /t REG_DWORD /d 400 /f
    "%CD%\reg.exe" add "HKCU\Console" /v FaceName /t REG_SZ /d "Lucida Console" /f
     
    start "" "%~f0" %* & exit
     
    ) 1>nul
     
    :begin
    echo Кракозябрам нет!
     
    pause
    exit

     
    Правильно, а почему вообще так происходит&
    Ты не мог сохранить мой код. он представлен выше, и выслать мне, у меня такое чувство что проблемы у меня?
     
    Добавлено:
    wolf0425
    код сам безопасный?

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 19:31 04-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425, что у тебя за тупая мания нет-нет, но оплевать человека:

    Цитата:
    а не предоставленный  ComradG генератор исходника с вызовом компилятора

    Но ведь

    Цитата:
    А вообще программка временами полезная, не вседа же годится запрещение кнопки "насмерть". Но я все-же скомпиленный noWinKey.exe себе в утилиты кинул

    Ты бы спасибо сказал, что я вообще это написал.
    Ладно, благодарности искать все равно, что в лужу пер... ну, просто в лужу.
    res2001 или wolf0425, кто из вас говорил о параметризации vbs зипующей/анзипующей через системный шелл? Я тут поднапрягся, повспоминал школьные уроки по Visual Basic и написал вот такую vbs-ку, которую можно юзать через батники.
     
    Добавлено:
    Ex0dus
    Макросы. Через батники можно лешиться шаров
     
    Добавлено:
    Эй, куда все сдристнули?

    Всего записей: 2041 | Зарегистр. 05-07-2008 | Отправлено: 19:39 04-07-2010 | Исправлено: ComradG, 19:40 04-07-2010
    wolf0425



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

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

    Цитата:
    Ты бы спасибо сказал, что я вообще это написал.  
    ну так как лично мне оно пока не понадобилось, а все предыдущие случаи я как-то обходился без неё (и это даже требовало памяти на несколько мегабайт меньше) - то пока подождешь. случится с пользой применить - скажу, не волнуйся.
    пока же только спасибо за само напоминание что в .НЕТ входит компилятор, я больше изврату с генерацией+компиляцией порадовался, чем произведенному с его помощью экзешнику.
     
    а зиповалку я попозже посмотрю...

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



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

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



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

    Цитата:
    решил поставить кодировка 866, как было, так все норамально работает  
    да оно и в 1251 работает не менее нормально, если система настроена на нормальный фонт
     
     

    Цитата:
    поменять кодировку (866) именно в отчете?
    в смысле с 866 на 1251?
    в подпрограмме печати отчета -  в начале 1>nul chcp 1251 и перед выходом 1>nul chcp 866  
    я правильно понимаю что отчет печатает :savelog  ?
     

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



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

    Цитата:
    я правильно понимаю что отчет печатает :savelog  ?  

    да, именно
    так надо, у меня просто не работает  

    Код:
    :savelog
    1>nul chcp 1251
    set /a "change=%~z1-%2"
    set /a "perc=%~z1*100/%2"
    1>nul chcp 866
    echo %~nx1;%2;%~z1;%change%;%perc%>>%logfile%
    exit /b

     
    Добавлено:
    Может лучше поменять кодировку, когда весь отчет будет готов?

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 22:26 04-07-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ты обратно наверно рано переключил
    Код:
    :savelog
    1>nul chcp 1251
    set /a "change=%~z1-%2"
    set /a "perc=%~z1*100/%2"
    echo %~nx1;%2;%~z1;%change%;%perc%>>%logfile%
    1>nul chcp 866
    exit /b  

     
    Добавлено:

    Цитата:
    Может лучше поменять кодировку, когда весь отчет будет готов?
    готов  -это в смысле файл целиком?
    только если отчет при каждом запуске новый (а не дописывается) и если имен файлов/каталогов  с тире и прочими кавычками не ожидается.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 23:59 04-07-2010 | Исправлено: wolf0425, 00:03 05-07-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Вроде получилось, спасибо
     
    Добавлено:
    Тут одна проблема возникла, если я использую кодировку 866, то пути файлов которые отображает программы, отображаются симсолами
    как это можно исправить?

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 00:12 05-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