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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10

Модерирует : KLASS, IFkO

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 10
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7, часть 8, часть 9)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    wolf0425



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

    Цитата:
    nircmdc.exe sendkeypress передает все буквы преобразуя в строчные. Похоже задача нерешимая...
    ты бы все же справку sendkeypress  прочитал  - там же примеры есть...
    start "" /b nircmdc.exe cmdwait 100 sendkeypress leftshift+p a s s w o r d enter

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:05 24-02-2011 | Исправлено: wolf0425, 12:11 24-02-2011
    butanaev78

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такое ощущение что не передается пароль ecLciv - а срабатывает enter, перескакивая на новую строку с предложением ввода пароля.

    Код:
     
    C:\Program Files\SberSign>start "" /b nircmd.exe sendkeypress ecLciv enter
     
    C:\Program Files\SberSign>sbersign /s 123.doc
    SBERSIGN V5.1.2 Copyright (C)2004,2007 InfoCrypt LTD., Moscow, RF
     
    Пароль:
     
    Пароль:
     

     
    Тупанул, символы пароля через пробел нужно вписать. Сейчас протестирую еще.
     
    Ребята, спасибо большое за помощь! Все работает!!!

    Код:
     
    cd c:\program files\sbersign
    start "" /b nircmd.exe sendkeypress v c leftshift+W b leftshift+C leftshift+C enter
    sbersign /s 123.doc  
    pause
     

     
     

    Всего записей: 9 | Зарегистр. 27-09-2010 | Отправлено: 12:19 24-02-2011 | Исправлено: butanaev78, 12:30 24-02-2011
    res2001



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

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:24 24-02-2011 | Исправлено: res2001, 13:14 24-02-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как можно из батника проверить и запретить запуск второй копии екзешника?
     
    Добавлено:
    Батник скомпилирован в exe, необходимо запретить его второй запуск

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 15:06 24-02-2011
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
    Подскажите, пытаюсь с помощью батника выяснить версию gcc компилятора.
    команда gcc -v выдает такое:

    Код:
     
    Using built-in specs.
    COLLECT_GCC=gcc
    Target: i686-pc-mingw32
    Configured with: ../src/configure --prefix=/mingw_new --build=i686-pc-mingw32 --target=i686-pc-mingw32 --with-sysroot=/mingw_new --with-build-
    sysroot=/mingw_new --with-libelf=/mingw_new/build_libs --with-mpfr=/mingw_new/build_libs --with-gmp=/mingw_new/build_libs --with-ppl=/mingw_ne
    w/build_libs --with-cloog=/mingw_new/build_libs --with-mpc=/mingw_new/build_libs --with-host-libstdcxx='-lstdc++ -lsupc++ -lm' --with-pkgversi
    on='XvidVideo.RU - GCC 4.5.3 i686-pc-mingw32' --with-system-zlib --enable-static --enable-threads=win32 --enable-languages=c,c++,fortran,lto,o
    bjc,obj-c++ --enable-targets=all --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libgo
    mp --disable-debug --disable-rpath --disable-shared --disable-nls --disable-win32-registry --disable-bootstrap
    Thread model: win32
    gcc version 4.5.3 20110209 (prerelease) (XvidVideo.RU - GCC 4.5.3 i686-pc-mingw32)
     

     
    Надо получить цифры 4.5.3, хотя в идеале - даже 4.5
     
     
    P.S. перенаправление вывода в файл ничего не дает, т.е. gcc -v >> ver.txt - в итоге вывод на экран, ver.txt пустой

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9225 | Зарегистр. 11-05-2006 | Отправлено: 15:26 24-02-2011 | Исправлено: Aleksoid1978, 15:28 24-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Aleksoid1978
    для выполнения непосредственно в ком.строке:
     
    for /f "tokens=3,4,5,* delims=. " %a in ('gcc -v ^| findstr /b /c:"gcc version" ') do echo %a.%b.%c
     
    Для батника все символы % замени на %%
     
    Добавлено
    подправил код

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:39 24-02-2011 | Исправлено: res2001, 15:43 24-02-2011
    01MDM



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

    Код:
     
    gcc -v 2>file.txt
     

    Возможно, что он выводит в STDERR.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:40 24-02-2011
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Не работает, выводит всю строку.
     
    01MDM
    Спасибо - так перенаправление работает, осталось только найти нужную строку
     


    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9225 | Зарегистр. 11-05-2006 | Отправлено: 15:44 24-02-2011
    res2001



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

    Цитата:
    Не работает, выводит всю строку.  

    У меня работает, только gcc у меня нет, я залил твой пример вывода gcc -v в файл и в нем уже искал.
     
    Добавлено:
    попробуй так
     

    Код:
    @echo off
    2>ver.txt gcc -v
    for /f "tokens=3,4,5,* delims=. " %%a in ('findstr /b /c:"gcc version" ver.txt') do echo %%a.%%b.%%c  

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:50 24-02-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    Батник скомпилирован в exe, необходимо запретить его второй запуск
    какие тебе видятся проблемы на старте батника пересчитать сколько раз его экзешник фигурирует в тасклисте, и если более одного - сразу завершиться?
     
     
    Добавлено:
    Aleksoid1978, наверно как-то так:
    for /f "tokens=3,4,5,* delims=. " %%a in ('gcc -v 2^>^&1 ^| findstr /b /c:"gcc version" ') do echo %%a.%%b.%%c

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:30 24-02-2011 | Исправлено: wolf0425, 16:36 24-02-2011
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 16:50 24-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    Хотелось бы, чтобы проверка не была привязана к имени файла

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

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 16:56 24-02-2011
    Free_Soft



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

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

    не, это точно не пойдет. может через WMI pid процесса узнавать? или он каждый раз разный будет.... есть еще мысли?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 17:28 24-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    PID однозначно будет каждый раз разный.
    Можно сделать у батника TITLE и по нему его искать.
     
    @echo off
    TITLE Programma

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 17:38 24-02-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Misha1989
    батник скомпилирован в exe и запускается в скрытом режиме

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 17:43 24-02-2011
    king_stiven

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

    Цитата:
    батник скомпилирован в exe и запускается в скрытом режиме

    в тасклисте он виден вроде

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 17:59 24-02-2011 | Исправлено: king_stiven, 18:00 24-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    батник скомпилирован в exe и запускается в скрытом режиме

    Скрытые окна - такие же окна, только их глаз не видит, а программы видят, и даже текст из них читают и в них вставляют.

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 18:05 24-02-2011
    Free_Soft



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

    Цитата:
    TITLE и по нему его искать


    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 18:35 24-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    тогда можно поподробнее  

    А это уже не ко мне, я тасклист плохо знаю, тут спецы такое с ним вытворять умеют, надеюсь помогут. Главное чтобы тасклист увидел скрытое окно.

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 18:45 24-02-2011
    Free_Soft



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

    Код:
    tasklist /fi "windowtitle eq test.exe" | find /i /n "myFile"

    как-то так типа?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:20 24-02-2011
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru