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

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

Автор: Joo1z
Дата сообщения: 28.04.2010 11:11
mouser

Код: for /f "tokens=3" %z in ('pslist.exe -s 2 ^| findstr /i "firefox"') do @if %z geq 80 @echo KILL!!! KILL!!! KILL!!!
Автор: mouser
Дата сообщения: 28.04.2010 11:38
Joo1z
тоже верно если не цеплятся к PID
Автор: Joo1z
Дата сообщения: 28.04.2010 11:56
mouser

Цитата:
тоже верно если не цеплятся к PID

А в чем проблема?
Код: tokens=2,3 %a
Автор: mugil_cephalus
Дата сообщения: 28.04.2010 12:07
mouser

Цитата:
нашел прогу ... но там нет CPU Usage

Example 1: Sample Output
The following display shows sample PMon output of a computer running Windows XP Professional.

Memory: 130612K Avail: 28660K PageFlts: 338 InRam Kernel: 1988K P:10868K
Commit: 190684K/ 135668K Limit: 314732K Peak: 251772K Pool N: 9000K P:12484K

Mem Mem Page Flts Commit Usage Pri Hnd Thd Image
CPU CpuTime Usage Diff Faults Diff Charge NonP Page Cnt Cnt Name

27348 28 917631 7 File Cache
95 30:35:30 20 0 1 0 0 0 0 0 0 1 Idle Process
0 0:01:39 24 0 9976 0 36 0 0 8 695 56 System
0 0:00:00 44 0 736 0 212 0 5 11 28 4 smss.exe
0 0:00:27 1788 0 14097 0 1816 5 51 13 564 11 csrss.exe
0 0:00:22 3780 0 29807 0 8804 46 63 13 595 19 winlogon.exe
Автор: mouser
Дата сообщения: 28.04.2010 12:08
Joo1z
почему в батнике не работает ???

z was unexpected at this time.

Код: :start
for /f "tokens=3" %z in ('pslist.exe -s 2 ^| findstr /i "firefox"') do @if %z geq 1 echo fedsf
goto :start
:KILL
tasklist /FI "IMAGENAME eq firefox.exe
start call firefox.exe
goto :start
Автор: Joo1z
Дата сообщения: 28.04.2010 12:14
mouser
Потому-что в батнике надо переменные писать с двумя %%.
Автор: Free_Soft
Дата сообщения: 28.04.2010 15:51
Вопрос к гуру батаники:
как в утилите hs_message.exe прикрутить свою иконку в начале заголовка? Добавление файла иконки к exexшнику решает пробему только для отображения в панели задач.
Заранее спасибо
Автор: dredd00
Дата сообщения: 28.04.2010 19:31
Господа, помогите пожалуйста.
надо выдрать даты создания файлов для сравнения по имени и дате времени
делаю как в примере про переименование
for %%i in (*.rar) do @call :compare %%i %%~ta


при выполнении пишет:
C:\work\dictupdates\down>for %i in (*.rar) do @call :compare %i %~ta
Следующее использование оператора пути при подстановке параметров
в пакетных файлах является недопустимым: %~ta

Для просмотра списка допустимых форматов введите CALL /? или FOR /?
Следующее использование оператора пути при подстановке параметров
в пакетных файлах является недопустимым: %~ta

Для просмотра списка допустимых форматов введите CALL /? или FOR /?
Автор: ForposT_ForeveR
Дата сообщения: 28.04.2010 19:35
Здравствуйте.
имеем батник


Код: "C:\Program Files\WINRAR\Rar.exe" x -ad a.rar
Автор: Listener92
Дата сообщения: 28.04.2010 20:44
Как реализовать в bat-файле ввод логина и пароля?
Ну, к примеру, мне нужно через написать батник, который запускает телнет, вписывает адрес, логин и пароль и последующие команды.
Как это реализовать?
Автор: mugil_cephalus
Дата сообщения: 28.04.2010 21:26
Listener92
http://forum.ru-board.com/topic.cgi?forum=5&topic=33080&start=20#19
runas /?

Добавлено:
dredd00

Цитата:
делаю как в примере про переименование
for %%i in (*.rar) do @call :compare %%i %%~ta

покажи свой полный код
Автор: dredd00
Дата сообщения: 29.04.2010 07:12
собственно кода еще нет. но уже не работает©. вот тестовый файл целиком


Код: cd down
for %%i in (*.rar) do copy %%i old\%%i /y
for %%i in (*.rar) do @call :compare %%i %%~ta
:EoF

:compare
set f_name=%1
set f_date=%2
set f_time=%3
GoTo :EoF

:EoF
Автор: mugil_cephalus
Дата сообщения: 29.04.2010 07:55
dredd00


Код: cd down
for %%i in (*.rar) do copy %%i old\%%i /y
for %%i in (*.rar) do @call:compare "%%~i" %%~ti
goto:eof

:compare
set "f_name=%~1"
set "f_date=%~2"
set "f_time=%~3"
GoTo:EoF
Автор: dredd00
Дата сообщения: 29.04.2010 08:16
Спасибо большое работает. тока не понял почему так.....
Автор: mugil_cephalus
Дата сообщения: 29.04.2010 08:48
dredd00

Цитата:
Спасибо большое работает. тока не понял почему так.....

см. for /?

Цитата:
собственно кода еще нет. но уже не работает©. вот тестовый файл целиком


Код:cd down
for %%i in (*.rar) do copy %%i old\%%i /y
for %%i in (*.rar) do @call :compare %%i %%~ta
:EoF

:compare
set f_name=%1
set f_date=%2
set f_time=%3
GoTo :EoF

:EoF

%%a - эта переменная в блоке итератора цикла не определена, а определена только %%i
Автор: kilserg
Дата сообщения: 29.04.2010 12:32
Привет всем.
Надо в текстовом файле проверять наличие определенной строки, и если ее нет, то добавлять ее в конец файла.

Вот что я придумал вкупе с sed'ом:

for /f %%j in ('cmd /c sed -n -e /string/p file.txt') do set found=1
if "%found%"=="" (
    echo.
    echo string>> file.txt
)

for /f не выполняется, если результат команды пустой, задается переменная и выводится новая строка в файл.

Ну а вопрос прозаический. Есть какие-нибудь команды, которые позволяют использовать результат выполнения другой команды кроме for?
Можно ли как-нибудь сделать это, так сказать, в одну строку и без посторонних утилит, наподобие sed'а (им еще не научился пользоваться нормально, но думаю, что можно обойтись только им).
Автор: yurkesha
Дата сообщения: 29.04.2010 12:45
kilserg
А зачем так сложно?
Код: FINDSTR /B /C:"строка поиска" aaa.txt||(ECHO строка поиска>>aaa.txt)
Автор: ipmanyak
Дата сообщения: 29.04.2010 12:46
Listener92
@echo off
set /p "given=Input ip: "
set /p "logins=Input Login: "
if defined logins (
telnet -l %logins% %given%
)
pause

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

Автор: mugil_cephalus
Дата сообщения: 29.04.2010 14:44
ForposT_ForeveR

Код: rem @echo off
pushd "%~d0\"
chcp 1251>nul
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do for /f "tokens=*" %%a in ('dir /b/s/a-d "%%~i:\*.rar"') do call:_1 "%%~a"
popd
chcp 866>nul
pause
goto:eof

:_1
set /p "uchoice=Do you wish to expand %~1. Y/N ?"
if /i "_%uchoice%" equ "_n" goto:eof
cd /d "%~dp1"
"C:\Program Files\WINRAR\Rar.exe" x -ad "%~1"
goto:eof
Автор: ForposT_ForeveR
Дата сообщения: 29.04.2010 15:38
mugil_cephalus

Не работает.
Ещё раз.
Может задачу не так изложил.

Задача стоит, в том, чтобы связать расширение рар с батником. И при запуске файла рар, создавалась директория и туда распаковался файл. Т.е. чтобы батник мог динамически получать название файла, а не статически в нём забивать только одно название.
Автор: duh_S
Дата сообщения: 29.04.2010 16:54

Цитата:
вот как сейчас:


Код: set ThisCmdDir=%~dp0
Set path_ACCOUNT_VCF="%ThisCmdDir%ACCOUNT_duh.VCF"
Set "Key=@mail.ru"
setlocal enabledelayedexpansion
For /F "usebackq delims=" %%i in (`Find /I "%Key%" ^< %path_ACCOUNT_VCF%`) Do Set "Value=%%i" & for /f "delims=:" %%j in ("!Value:%Key%=:!") do set "Value=%%j"
@Echo.%Value%



листинг:


Код: >set ThisCmdDir=F:\бат\обработка текста\

>Set path_ACCOUNT_VCF="F:\бат\обработка текста\ACCOUNT_duh.VCF"

>Set "Key=@mail.ru"

>setlocal enabledelayedexpansion

>For /F "usebackq delims=" %i in (`Find /I "@mail.ru" < "F:\бат\обработка текста\ACCOUNT_duh.VCF"`) Do Set "Value=%i" & for /F "delims=:" %j in ("!Value:@mail.ru=:!") do set "Value=%j"

>Set "Value=EMAIL;PREF;INTERNET:NovikovSM@mail.ru" & for /F "delims=:" %j in ("!Value:@mail.ru=:!") do set "Value=%j"

>set "Value=EMAIL;PREF;INTERNET"
EMAIL;PREF;INTERNET
Автор: mugil_cephalus
Дата сообщения: 29.04.2010 21:04
ForposT_ForeveR

Код: assoc .rar>backup.txt 2>&1
ftype WinRAR>>backup.txt 2>&1
ftype WinRAR="C:\Program Files\WINRAR\Rar.exe" x -ad "%1"
pause
Автор: Mark_Titov
Дата сообщения: 29.04.2010 21:32
...Приветствую всех.

Может и мне поможете чем...
Проблема такая -

Пишу батник. Это будет своего рода "Менеджер удаленного управления сервисами и процессами".
Сразу скажу что это - реализация для "блондинок"...

1- Вообщем нужна комманда которая показывала бы список СЛУЖБ НА УДАЛЕННОМ компе по фильтру.
Задача этой утилиты - останавливать и запускать СЛУЖБЫ НА УДАЛЕННОМ КОМПЕ в локалке домена...
Права адимина есть...
В ручную прописывать - не вариант...

2- Список этих служб должен быть автоматически пронумерован! (это наверное если и выполнимая задача - то очень не легкая)...
Это для того что бы нажав НОМЕР СЛУЖБЫ выполнялась следующая комманда - остановка или запуск ЭТОЙ СЛУЖБЫ...

Вот на этом и застрял - выручайте пожалуйста...
Автор: mugil_cephalus
Дата сообщения: 29.04.2010 22:39
Mark_Titov
sc /?
Уильям Станек - Командная строка Microsoft Windows
список служб можно еще так посм.

Код: reg query \\remotecomp\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Автор: Mark_Titov
Дата сообщения: 29.04.2010 23:11

Цитата:
Mark_Titov
sc /?
Уильям Станек - Командная строка Microsoft Windows

Да. Спасибо. Это хорошо. Но как тут все это упорядочить?
Это же для "блондинок" и номера что бы были???

Комманда - sc query подходит.
Но она прямо все вываливает -


SERVICE_NAME: helpsvc
DISPLAY_NAME:
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

SERVICE_NAME: JavaQuickStarterService
DISPLAY_NAME: Java Quick Starter
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE,PAUSABLE,ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0


...Другими словами БЛОНДИНКА не разберется тут что и как запускать или останавливать.
Вот таже запись - но упорядоченная -

1 SERVICE_NAME: helpsvc
STATE : 4 RUNNING

2 SERVICE_NAME: JavaQuickStarterService
STATE : 4 RUNNING

Вот тут блондинка разберется. Такое вообще возможно?
Автор: mugil_cephalus
Дата сообщения: 29.04.2010 23:28

Код: sc query |findstr /i "SERVICE_NAME: STATE"
pause
Автор: Mark_Titov
Дата сообщения: 29.04.2010 23:33

Цитата:
sc query |findstr /i "SERVICE_NAME: STATE"
pause

Вот! То что надо... Огромное спасибо mugil_cephalus.
А как еще фильтр туда прикрутить?
Там есть условие - вывод определенных сервисов... По расширению (exe)...
Там будут конвертированные батники в exe в качестве сервисов. И вот их все надо отфильтрововать от всех остальных...
Автор: mugil_cephalus
Дата сообщения: 29.04.2010 23:45
Mark_Titov

Код: cd\
setlocal enabledelayedexpansion
set "cnt=1"
for /f "tokens=*" %%i in ('sc query ^|findstr /i "SERVICE_NAME: STATE"') do (
echo.%%~i|1>nul 2>&1 find /i "SERVICE_NAME:" &&(
echo.!cnt!. %%~i
set /a cnt=!cnt!+1
) ||echo.%%~i
)
Автор: Mark_Titov
Дата сообщения: 30.04.2010 05:50
exe-шники начинаются с 00-80-9F-..-..-.. .exe
И таких на данный момент 10 шт. Сделанны как службы...
Автор: mugil_cephalus
Дата сообщения: 30.04.2010 08:58
Mark_Titov

Цитата:
exe-шники начинаются с 00-80-9F-..-..-.. .exe

а вытаскиваешь ты это какой командой, типа так - sc qc winmgmt ?
и в вывод нужно получить только эти 10 служб, отсеев другие?

а почему нельзя их фильтровать не по имени екзешника, а по SERVICE_NAME - ???

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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