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

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

Автор: fire4x
Дата сообщения: 11.06.2011 18:01
res2001

Цитата:
На сколько я понял речь об wmiprvse.exe пошла, после того как ты полез смотреть события.
Ну дык это evenvwr без него не работает, видимо.

После того как влез туда я очистил все журналы.
Потом запустил TASKKILL.
Потом посмотрел записи после запуска TASKKILL.


Цитата:
Цитата:P.S. Как через батник проверить убился ли через TASKKILL блокнот?


tasklist | findstr "notepad.exe" || echo Блокнота нет.

У tasklist те же симптомы

P.S. Задача следующая:
Убить блокнот
Проверить, убит ли блокнот
Если нет, попробовать через PsKill

Дополнительное условие: работоспособность TASKKILL и tasklist - НЕИЗВЕСТНА


Автор: res2001
Дата сообщения: 11.06.2011 18:14
fire4x
значит юзай pslist и pskill вместо tasklist и taskkill.
Проверка с pslist аналогична, тому что я написал с tasklist.
Автор: fire4x
Дата сообщения: 11.06.2011 18:25
res2001

Цитата:
значит юзай pslist и pskill вместо tasklist и taskkill.
Проверка с pslist аналогична, тому что я написал с tasklist.


P.S. Задача следующая:
1) Убить блокнот
2) Проверить, убит ли блокнот
3) Если нет, попробовать через PsKill


1) TASKKILL /F /IM notepad.exe
2) tasklist | findstr "notepad.exe"
А как Батник узнает, что tasklist не работает и пора переходить к следующему пункту?
3) Если нет, попробовать через PsKill
Автор: res2001
Дата сообщения: 11.06.2011 18:30
fire4x

Код: TASKKILL /F /IM notepad.exe || pskill notepad.exe
Автор: fire4x
Дата сообщения: 11.06.2011 18:55
res2001

Цитата:
Код:TASKKILL /F /IM notepad.exe
tasklist | findstr "notepad.exe" || (echo Блокнот убит taskkillом & exit)
pskill notepad.exe
pslist | findstr "notepad.exe" || (echo Блокнот убит pskillом & exit)
echo Блокнот убить не удалось

Как-то так, не проверял.


Как к этому приделать IF? Так правильно?

Код:
TASKKILL /F /IM notepad.exe
IF tasklist | findstr "notepad.exe" goto 10
pskill notepad.exe
:10
Автор: res2001
Дата сообщения: 11.06.2011 19:03
fire4x
Прошлый свой пост изменил, посмотри новый код.

Цитата:
А вот как это обойти...

не знаю.
Автор: fire4x
Дата сообщения: 11.06.2011 19:12
res2001

Цитата:
Код:TASKKILL /F /IM notepad.exe || pskill notepad.exe

Увы, но единственный способ - найти куда pskill прописывает в реестр согласие с лицензией и добавить его до выполнения команды...


Цитата:
||
Для чего эта штука?

Автор: res2001
Дата сообщения: 11.06.2011 19:21
fire4x

Цитата:
Для чего эта штука?

Выполняет следующую команду в случае, если первая команда завершилась с кодом возврата <>0
Есть еще антипод - && - выполняет следующую команду в случае если первая завершилась с errorlevel == 0
Автор: fire4x
Дата сообщения: 11.06.2011 19:51
res2001

Цитата:
Цитата:Код:TASKKILL /F /IM notepad.exe || pskill notepad.exe

В чем разница между

Код: TASKKILL /F /IM notepad.exe || pskill notepad.exe
Автор: res2001
Дата сообщения: 11.06.2011 20:16
fire4x
Выполни команду
start "" hh ntcmds.chm
и читай раздел "Общие сведения о командной оболочке"

Добавлено:

Цитата:
А если необходимо противопоставить несколько действий чем разделять команды?
Например:

Убить блокнот || запустить 1.exe->pskill notepad.exe->запустить 2.exe


Если я правильно понял твою мысль (убивам блокнот taskkillом, если убился, то запускаем 1.exe, если нет, то убиваем pskillом, убился - запускаем 2.exe):

Код: taskkill notepad.exe && (1.exe & exit)
pskill notepad.exe && (2.exe & exit)
Автор: fire4x
Дата сообщения: 11.06.2011 20:34
res2001

Цитата:
Если я правильно понял твою мысль (убивам блокнот taskkillом, если убился, то запускаем 1.exe, если нет, то убиваем pskillом, убился - запускаем 2.exe)


НЕТ

Код: Убить блокнот || запустить 1.exe->pskill notepad.exe->запустить 2.exe
Автор: res2001
Дата сообщения: 11.06.2011 20:55
fire4x

Цитата:
Т.е. если блокнот не убился, то запускается 1.exe после которого происходит pskill notepad.exe а затем запусткается 2.exe

taskkill || 1.exe & pskill & 2.exe

Цитата:
А что в кавычки вставлять?

ничего
Автор: fire4x
Дата сообщения: 11.06.2011 21:22
res2001

Цитата:
taskkill || 1.exe & pskill & 2.exe


А если их (1.exe, pskill, 2.exe) нужно запустить ОДНОВРЕМЕННО?

P.S. Как сделать листинг в файл перечня "подветок первого уровня" ветки реестра HKEY_USERS?
P.P.S. Как сделать листинг в файл названия подветки первого уровня ветки реестра HKEY_USERS (та которая очень длинная без "_Classes" на конце)?
Автор: res2001
Дата сообщения: 11.06.2011 21:32
fire4x

Цитата:
А если их (1.exe, pskill, 2.exe) нужно запустить ОДНОВРЕМЕННО?

Запускай через start: start "" 1.exe & start "" pskill & start "" 2.exe

Цитата:
Как сделать листинг в файл перечня "подветок первого уровня" ветки реестра HKEY_USERS?

reg query /?
Автор: fire4x
Дата сообщения: 11.06.2011 22:03
res2001


Код: C:\>TASKKILL /F /IM notepad.exe || notepad.exe & notepad.exe
Ошибка: Не удается найти указанный файл.

C:\>pause
Для продолжения нажмите любую клавишу . . .

C:\>TASKKILL /F /IM notepad.exe || start "" notepad.exe & start "" notepad.e
xe
Ошибка: Не удается найти указанный файл.

C:\>pause
Для продолжения нажмите любую клавишу . . .
Автор: Elroir
Дата сообщения: 12.06.2011 01:17
fire4x

Цитата:
Не получается. Мне нужны только названия самих подветок и только первого уровня. С параметром /s перебирается все содержимое.


Код:
@echo off
for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a>>users.txt
Автор: Talay
Дата сообщения: 12.06.2011 11:30
Здравствуйте.

У меня в папках "Мои Документы" и "Рабочий Стол" есть папки ("ФОТО" и "СДЕЛАНО") с разными файлами в процессе работы очень много накапливается за один день...
мне надо в планировщике в заданное время очистить все папки от содержимого.
помогите решить такую задачу

спасибо за любой ответ
Автор: Nagual
Дата сообщения: 12.06.2011 12:29
Talay
так а в чём проблема то?
rd/s/q что_удаляем
о планировщике инет от инфы ломится
Автор: res2001
Дата сообщения: 12.06.2011 13:10
Nagual
Talay
Папки то надо оставить, поэтому лучше
del /f/q "%USERPROFILE%\Мои документы\ФОТО\*.*"
и т.д. для остальных папок.
Автор: Talay
Дата сообщения: 12.06.2011 13:12
Nagual
можно подробно, я даун в этом... я незнаю как писать пути до папки (((

Добавлено:
res2001
спасибо )) сделал, не идет (((
Автор: res2001
Дата сообщения: 12.06.2011 13:32
Talay

Цитата:
спасибо )) сделал, не идет (((


что не идет? Ошибки? Какие?

Цитата:
можно подробно, я даун в этом... я незнаю как писать пути до папки (((

Сделаешь bat файл вот с таким содержимым:

Код: @echo off
del /f/q "%USERPROFILE%\Мои документы\ФОТО\*.*"
del /f/q "%USERPROFILE%\Мои документы\СДЕЛАНО\*.*"
del /f/q "%USERPROFILE%\Рабочий стол\ФОТО\*.*"
del /f/q "%USERPROFILE%\Рабочий стол\СДЕЛАНО\*.*"
Автор: wolf0425
Дата сообщения: 12.06.2011 14:50

Цитата:
Сделаешь bat файл вот с таким содержимым:
del /f/q "%USERPROFILE%\Мои документы\ФОТО\*.*"
del /f/q "%USERPROFILE%\Мои документы\СДЕЛАНО\*.*"


вообще-то применительно к батнику для планировщика - %USERPROFILE% полезнее будет заменить значением, а сам батник запускать под системным аккаунтом, а не под пользовательским: многие пользователи не ставят на свой аккаунт пароль, под таким пользователем планировщик не запустит.

и ещё напоминалка для Talay: если в батнике есть русские буковки - то надо или батник сохранять в 866 кодировке (как подразумевают все дающие тут советы) или chcp 1251 в начало батника вписывать.
Автор: Nagual
Дата сообщения: 12.06.2011 17:05
Talay
Код:
@echo off&chcp 1251>nul
if exist
"%USERPROFILE%\Мои документы\ФОТО" cd "%USERPROFILE%\Мои документы\ФОТО"&rd/s/q .
if exist "%USERPROFILE%\Мои документы\СДЕЛАНО" cd "%USERPROFILE%\Мои документы\СДЕЛАНО"&rd/s/q .
if exist "%USERPROFILE%\Рабочий стол\ФОТО" cd "%USERPROFILE%\Рабочий стол\ФОТО"&rd/s/q .
if exist "%USERPROFILE%\Рабочий стол\СДЕЛАНО" cd "%USERPROFILE%\Рабочий стол\СДЕЛАНО"&rd/s/q .

Цитата:
вообще-то применительно к батнику для планировщика - %USERPROFILE% полезнее будет заменить значением
чем обоснуешь?
Автор: fire4x
Дата сообщения: 12.06.2011 20:20
Elroir

Цитата:
Код:
@echo off
for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a>>users.txt


А как сделать, чтобы в файл попадали названия веток, которые подходят по шаблону (например K??a*n).
Образец шаблона будет находиться в бат-файле.
Автор: res2001
Дата сообщения: 12.06.2011 21:44
fire4x

Цитата:
А как сделать, чтобы в файл попадали названия веток, которые подходят по шаблону (например K??a*n).

for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a | findstr /r "K..a.*n">>users.txt
В findstr с ключем /r в качестве шаблона задаются регулярные выражения, а не принятые шаблоны для указания маски файлов. Читай findstr /?
Автор: wolf0425
Дата сообщения: 12.06.2011 21:48

Цитата:
чем обоснуешь?
тем, что при запуске из-под системного профиля - %USERPROFILE% будет совсем не тот, что при запуске из профайла юзера.
А почему может вообще не получиться запустить из шедулера под профилем юзера - я выше тоже написал.
Автор: fire4x
Дата сообщения: 12.06.2011 23:11
res2001

Цитата:
Цитата:А как сделать, чтобы в файл попадали названия веток, которые подходят по шаблону (например K??a*n).


for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a | findstr /r "K..a.*n">>users.txt
В findstr с ключем /r в качестве шаблона задаются регулярные выражения, а не принятые шаблоны для указания маски файлов. Читай findstr /?


Спасибо большое.
А как вместо ветки реестра использовать путь к папке (например Windows)?
Автор: Elroir
Дата сообщения: 13.06.2011 00:15
fire4x

Цитата:
А как вместо ветки реестра использовать путь к папке (например Windows)?

Что имеется в виду?
Автор: fire4x
Дата сообщения: 13.06.2011 04:59
Elroir

Цитата:
Цитата:А как вместо ветки реестра использовать путь к папке (например Windows)?


Что имеется в виду?

Тот же самый пример. Только не для реестра, а для обычных папок: сбор названий подпапок в файл.

Цитата:
Код:
@echo off
for /f "tokens=2 delims=\" %%a in ('reg query HKEY_USERS') do echo %%a>>users.txt


Автор: res2001
Дата сообщения: 13.06.2011 09:56
fire4x
dir /a:d /b c:\windows\* >dirs.txt

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

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


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