Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 10

Автор: butanaev78
Дата сообщения: 24.02.2011 09:49
king_stiven
вот это уже интересно, можно подробнее как
Цитата:
Задать этому батнику определённый заголовок
и как воспользоваться командой nircmd?
Автор: smirnvlad
Дата сообщения: 24.02.2011 09:52
butanaev

Цитата:
есть ли возможность реализовать ввод этого пароля в батнике?

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

Код: echo my_password | sbersign /s 123.doc
Автор: butanaev78
Дата сообщения: 24.02.2011 09:56
smirnvlad
пробовал, не прокатывает. Игнорируется.
Автор: wolf0425
Дата сообщения: 24.02.2011 10:49

Цитата:
вот это уже интересно, можно подробнее как
Задать этому батнику определённый заголовок
заголовок консольного окна устанавливливается
1. при запуске его командой start
2. выполнением в нем команды title



Цитата:
и как воспользоваться командой nircmd?
прочитать справку на тему nircmdc.exe sendkeypress - религия не позволяет или что?


в общем-то с окном можно не заморачиваться, просто запускать nircmdc параллельно в текущем, пробуй:

Код: @echo off
start "" /b nircmdc.exe cmdwait 100 sendkeypress p a s s w o r d enter
sbersign /s 123.doc
Автор: butanaev78
Дата сообщения: 24.02.2011 11:01
Еще одна загвоздка - пароль состоит из строчных и прописных латинских букв и цифр, но nircmdc.exe sendkeypress передает все буквы преобразуя в строчные. Похоже задача нерешимая...
Автор: wolf0425
Дата сообщения: 24.02.2011 11:05

Цитата:
nircmdc.exe sendkeypress передает все буквы преобразуя в строчные. Похоже задача нерешимая...
ты бы все же справку sendkeypress прочитал - там же примеры есть...
start "" /b nircmdc.exe cmdwait 100 sendkeypress leftshift+p a s s w o r d enter
Автор: butanaev78
Дата сообщения: 24.02.2011 11:19
Такое ощущение что не передается пароль 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

Пароль:

Пароль:
Автор: Free_Soft
Дата сообщения: 24.02.2011 14:06
Как можно из батника проверить и запретить запуск второй копии екзешника?

Добавлено:
Батник скомпилирован в exe, необходимо запретить его второй запуск
Автор: Aleksoid1978
Дата сообщения: 24.02.2011 14:26
Всем привет.
Подскажите, пытаюсь с помощью батника выяснить версию 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)
Автор: res2001
Дата сообщения: 24.02.2011 14:39
Aleksoid1978
для выполнения непосредственно в ком.строке:

for /f "tokens=3,4,5,* delims=. " %a in ('gcc -v ^| findstr /b /c:"gcc version" ') do echo %a.%b.%c

Для батника все символы % замени на %%

Добавлено
подправил код
Автор: 01MDM
Дата сообщения: 24.02.2011 14:40
Попробуй

Код:
gcc -v 2>file.txt
Автор: Aleksoid1978
Дата сообщения: 24.02.2011 14:44
res2001
Не работает, выводит всю строку.

01MDM
Спасибо - так перенаправление работает, осталось только найти нужную строку

Автор: res2001
Дата сообщения: 24.02.2011 14:50
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
Автор: wolf0425
Дата сообщения: 24.02.2011 15:30
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
Автор: Free_Soft
Дата сообщения: 24.02.2011 15:50
wolf0425
Хотелось бы, чтобы проверка не была привязана к имени файла
Автор: Misha1989
Дата сообщения: 24.02.2011 15:56
Free_Soft
Цитата:
Хотелось бы, чтобы проверка не была привязана к имени файла

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

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

не, это точно не пойдет. может через WMI pid процесса узнавать? или он каждый раз разный будет.... есть еще мысли?
Автор: Misha1989
Дата сообщения: 24.02.2011 16:38
Free_Soft
PID однозначно будет каждый раз разный.
Можно сделать у батника TITLE и по нему его искать.

@echo off
TITLE Programma
Автор: Free_Soft
Дата сообщения: 24.02.2011 16:43
Misha1989
батник скомпилирован в exe и запускается в скрытом режиме
Автор: king_stiven
Дата сообщения: 24.02.2011 16:59

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

в тасклисте он виден вроде
Автор: Misha1989
Дата сообщения: 24.02.2011 17:05
Free_Soft
Цитата:
батник скомпилирован в exe и запускается в скрытом режиме

Скрытые окна - такие же окна, только их глаз не видит, а программы видят, и даже текст из них читают и в них вставляют.
Автор: Free_Soft
Дата сообщения: 24.02.2011 17:35
Misha1989
тогда можно поподробнее

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

Автор: Misha1989
Дата сообщения: 24.02.2011 17:45
Free_Soft
Цитата:
тогда можно поподробнее

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

Код: tasklist /fi "windowtitle eq test.exe" | find /i /n "myFile"
Автор: wolf0425
Дата сообщения: 24.02.2011 21:08

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

Код: @echo off
title 0
tasklist /fi "windowtitle eq mysecretprogram" | find /i "==" >nul && (echo already running & exit)
title mysecretprogram
echo First copy
Автор: Free_Soft
Дата сообщения: 24.02.2011 22:29
wolf0425

хм...

Код: title mysecretprogram
tasklist /fi "windowtitle eq mysecretprogram"
Автор: wolf0425
Дата сообщения: 24.02.2011 22:48

Цитата:
Задачи, отвечающие заданным критериям, отсутствуют.
проверь чтоу тебя в строку с title не влез пробел в конце.
Автор: Free_Soft
Дата сообщения: 24.02.2011 22:53
пробела нет...
Автор: kostyamks
Дата сообщения: 24.02.2011 23:50
Всем привет!
Нужна ваша помощь в написания батника.
Мой батник выглядит так:

Цитата:
@echo on
reg add "HKLM\SOFTWARE\KasperskyLab\protected\AVP11\profiles\KSN" /v enabled /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\KasperskyLab\protected\AVP11\profiles\KSN_client" /v enabled /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\KasperskyLab\protected\AVP11\profiles\Updater\settings" /v UpdateExecutables /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\KasperskyLab\protected\AVP11\settings" /v EnableSelfProtection /t REG_DWORD /d 0 /f
copy "С:\Patch\fltlib.dll" "C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2011\fltlib.dll" /Y
reg add "HKLM\SOFTWARE\KasperskyLab\protected\AVP11\settings" /v EnableSelfProtection /t REG_DWORD /d 1 /f
EXIT


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

P.S. Еще есть вопрос, куда лучше прописать в автозагрузку уже готовый батник в
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
или как вирусы
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
а может есть вариант запуска еще лучще.
Спасибо.
Автор: BVV63
Дата сообщения: 25.02.2011 04:17
kostyamks
Отвечу лишь по дополнительному вопросу:

Цитата:
Еще есть вопрос, куда лучше прописать в автозагрузку уже готовый батник

Думаю, лучше всего под ключём [HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] в параметр "Userinit". Там уже находится ссылка на Userinit.exe, после запятой (запятая - разделитель) укажите свой батник (пробелы до запятой и после не нужны!). Чем такой способ лучше альтернативных? Только тем, что он наиболее независим от каких-либо условий, он работает и тогда, когда другие не работают.

Добавлено:
А вообще-то батник можно запускать как службу ("Service Mill", к примеру, это позволяет). Порядок запуска служб регулируется через реестр. И если батник стартует раньше Каспера, то без проблем внесёт изменения в реестр.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.