Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 67
1

Не отрабатывает Tasklist

16.12.2014, 12:59. Просмотров 1053. Ответов 4
Метки нет (Все метки)

Не отрабатывает команда Tasklist. Задаю переменную(20 и 21 строки кода), которой присваиваю имя желаемого процесса. Как доходит до выполнения команды, выдаёт ошибку, что "Фильтр не определён". Если же вписываю имя процесса руками, то всё отлично.
Иначе, так не работает:
Bash
1
tasklist /s %atm_ip% /u %login% /p %pswd% /fi "IMAGENAME eq %srvc%.exe"
А так работает:
Bash
1
tasklist /s %atm_ip% /u %login% /p %pswd% /fi "IMAGENAME eq r_server.exe"
P.S. При этом заметил, что если стоит параметр "SetLocal EnableDelayedExpansion", то команда вообще не выполняется. С чем это может быть связано?


Код самой программы:
Bash
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
@echo off
::SetLocal EnableDelayedExpansion
SetLocal EnableExtensions
title ATM_Service
 
:START_P
cls
echo.
echo     Start Page
echo.
echo  1. ATM_5600
echo  2. ATM_7600
echo  3. Another ATM
echo  0. Exit from programm
 
 
echo.
set mia=
set /p mia=" Make your choice: "
if "%mia%"=="1" (set atm_n=ATM5600 && set atm_ip=10.10.10.1  && set login=admin && set pswd=1111111 && goto:ATM_OPT)
if "%mia%"=="2" (set atm_n=ATM7600 && set atm_ip=10.10.10.2 && set login=admin && set pswd=1111111 && goto:ATM_OPT)
if "%mia%"=="3" goto:RETURN
if "%mia%"=="0" goto:EXIT_P
 
:: Erorr statement
cls
echo.
echo  Invalid value, please choose correct
ping -n 4 127.0.0.1>NUL
call :START_P
 
:ATM_OPT
cls
echo.
echo    OPTIONS 
echo.
echo 1. Find working service
echo 0. Start or stop service
echo.
 
set jia=
set /p jia="Make your choice: "
if "%jia%"=="1" goto:FIND_SRV
if "%jia%"=="0" goto:%atm_n%
 
:: Erorr statement
cls
echo.
echo Invalid value, please choose correct
ping -n 4 127.0.0.1>NUL
call :ATM_OPT
 
:FIND_SRV
 
cls
echo.
echo    FIND SERVICE
echo.
echo 1. safensec
echo 2. r_server
echo 0. Another service
echo.
set faya=
set /p faya="Make your choice: "
set "%faya%"=="1" (set srvc="winlogon.exe" && goto:SRCH_SRV )
set "%faya%"=="2" (set srvc="r_server.exe" && goto:SRCH_SRV )
set "%faya%"=="0" (set /p srvc="Enter name of service your wish to search: " && goto:SRCH_SRV )
 
:: Erorr statement
cls
echo.
echo Invalid value, please choose correct
ping -n 4 127.0.0.1>NUL
call :FIND_SRV
 
:SRCH_SRV
cls
echo.
tasklist /s %atm_ip% /u %login% /p %pswd% /fi "IMAGENAME eq %srvc%"
pause
goto:RETURN
 
:RETURN
cls
echo.
echo    Options
echo.
echo  1. Go to start page
echo  0. Exit
echo.
set nia=
set /p nia="Make your choice: "
if "%nia%"=="1" goto:START_P
if "%nia%"=="0" goto:EXIT_P
:: Erorr statement
cls
echo.
echo Invalid value, please choose correct
ping -n 4 127.0.0.1>NUL
call :RETURN
 
:EXIT_P
cls
echo.
echo Exit...
pause
exit
Добавлено через 43 минуты
Попробовал другие команды:
Результат тот же, если имя сервиса задаётся переменной, то команда не отрабатывается. Если вписывается ручками, то всё отлично.

Bash
1
2
sc \\%atm_ip% query | find "%srvc%"
sc \\%atm_ip% query %srvc%
Bash
1
2
sc \\%atm_ip% query | find "r_server"
sc \\%atm_ip% query r_server
Добавлено через 8 минут
Попробовал другие команды:
Результат тот же, если имя сервиса задаётся переменной, то команда не отрабатывается. Если вписывается ручками, то всё отлично.

Bash
1
2
sc \\%atm_ip% query | find "%srvc%"
sc \\%atm_ip% query %srvc%
Bash
1
2
sc \\%atm_ip% query | find "r_server"
sc \\%atm_ip% query r_server
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 12:59
Ответы с готовыми решениями:

Регулярка findstr отрабатывает на одном файле, но не отрабатывает на другом
Приветствую ! Сижу, ругаюсь матом в голос потому, что регулярка срабатывает на одном текстовом...

Tasklist sort
Здравствуйте. Буквально вчера начал изучать смд. У меня вопрос Создайте текстовый файл в папке...

Конкурс - Batch TaskList* и 10$
Задача с подколом - для всех. Задание: Имеем команду TASKLIST | FIND /i ".еxe" Вопрос:...

Taskkill и tasklist не работают
Здравствуйте! При использовании команд taskkill /im ИМЯ.exe и tasklist выдает сообщение "Ошибка:...

__________________

Записывайтесь на профессиональные курсы DevOps-инженеров
4
3441 / 1979 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
16.12.2014, 14:48 2
Лучший ответ Сообщение было отмечено Maret как решение

Решение

Maret, задавать переменные в 64-ой и 65-ой строках Вашего кода правильно так:

Bash
1
2
set "%faya%"=="1" (set "srvc=winlogon.exe" && goto:SRCH_SRV )
set "%faya%"=="2" (set "srvc=r_server.exe" && goto:SRCH_SRV )
.
1
1635 / 344 / 41
Регистрация: 15.10.2012
Сообщений: 532
16.12.2014, 14:56 3
В строчках 65-67 ошибка - set вместо if
1
3441 / 1979 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
16.12.2014, 15:11 4
Лучший ответ Сообщение было отмечено Maret как решение

Решение

Smitis, точно (у меня уже "глаз замылился").


Тогда в итоге строки с 65-ой по 67-ую должны выглядеть так:

Bash
1
2
3
if "%faya%"=="1" (set "srvc=winlogon.exe" && goto:SRCH_SRV )
if "%faya%"=="2" (set "srvc=r_server.exe" && goto:SRCH_SRV )
if "%faya%"=="0" (set /p srvc="Enter name of service your wish to search: " && goto:SRCH_SRV )
.
0
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 67
17.12.2014, 09:51  [ТС] 5
Спасибо ребят огромное!! И вправду "if" пропустил, уже просто глаза замылились.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2014, 09:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Нет доступа tasklist в сети
Вечер добрый. Вопрос элементарный, но толковой литературы по теме я так и не нашел, поэтому сильно...

Пропуск команд между двумя TaskList /Fi
Привет всем. Подскажите что нужно подправить в этом коде, что-бы не было следующей проблемы: После...

Tasklist и количество процессов cmd.exe
Добрый день. Не могу разобраться в одном вопросе. Пишу батник. Хочу через for и tasklist записать...

Мониторинг объёма памяти с использованием команды TASKLIST
Всем, доброго времени суток. Есть задача удаленно, через терминал, мониторить объем памяти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.