Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/20: Рейтинг темы: голосов - 20, средняя оценка - 4.55
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
1

Выполнение команды при заданном условии

29.09.2013, 00:10. Просмотров 4026. Ответов 27
Метки нет (Все метки)

Кому-нибудь возможно поднадоел уже.)))
Среда XPE. При загрузке на панели быстрого запуска по-умолчанию красуется ярлык (не важно какой).
Единственный доступный мне способ избавиться от него - автозапуск файла с командой об удалении объекта.
Изучив документацию узнал, что любой из способов автозапуска сработает до того, как загрузится эксплорер.
В этом и есть загвоздка!
Автозагруженный файл делает свое дело - удаляет объект, но эксплорер помещает-таки на панель уже безполезный ярлык!
Вопрос. Как задать условие для выполнения команды типа: "выполнить после загрузки эксплорера"?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 00:10
Ответы с готовыми решениями:

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

Циклическое выполнение команды
Добрый день, прошу прощения что я так ворвался и прошу помощи. Просто в...

Выполнение команды по SSH
Здравствуйте. Имеется ПК с Win7 и ПК с Linux на борту. Хочу в ПК с Win7 создать...

Выполнение команды от имени администратора
как можно выполнить команду в cmd от имени администратора, при этом не запуская...

Выполнение команды TRACERT в бесконечном цикле
Подскажите, пожалуйста. Можно ли написать какой-либо "скрипт" который будет...

27
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
29.09.2013, 12:56 2
Bash
1
2
3
4
@echo off
:begin
tasklist |>nul find /i "explorer.exe" && (ping -n 3 127.1& del "ярлык"& goto :eof)
goto begin
Комментарий к коду

::если нашли explorer
find /i "explorer.exe"

:: выждем еще пару секунд
&& (ping -n 3 127.1

:: и тогда удалим ярлык
& del "ярлык"

:: после чего выходим из цикла проверки наличия процесса Explorer-а
& goto :eof
1
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
07.10.2013, 17:22  [ТС] 3
Dragokas, соорудил батник. Не работает!( Ни из реестра, ни сам. Только консоль мелькает.
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
07.10.2013, 18:44 4
Цитата Сообщение от Bazaroff Посмотреть сообщение
соорудил батник.
покажите.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
07.10.2013, 19:15  [ТС] 5
Цитата Сообщение от Dragokas Посмотреть сообщение
покажите
Bash
1
2
3
4
@echo off
:begin
tasklist |>nul find /i "explorer.exe" && (ping -n 3 127.1& rmdir /s /q "B:\Documents and Settings\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch"& goto :eof)
goto begin
ЗЫ Вместо rmdir давал и команду del с указанием конкретного файла - безуспешно.(
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
07.10.2013, 19:32 6
а по частям пробовали выполнять в консоли (WIN + R, CMD)?

Bash
1
tasklist | find /i "explorer.exe"
Bash
1
rmdir /s /q "B:\Documents and Settings\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch"
Это ж не какой-то супернавороченный скрипт.

З.Ы. Нехорошо вот так наглухо удалять системную папку.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
07.10.2013, 19:47  [ТС] 7
Цитата Сообщение от Dragokas Посмотреть сообщение
а по частям пробовали выполнять в консоли (WIN + R, CMD)?
Ох! Простите мне пожалуйста мою невежественность.((( А как и что надо предпринять?(

Цитата Сообщение от Dragokas Посмотреть сообщение
WIN + R, CMD
Что-то из области непознаваемого в принципе!(((
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
07.10.2013, 22:48 8
Win - это такая кнопка на клавиатуре в виде эмблемы Windows.

Альтернатива:
Для Win XP:
ПУСК, Выполнить, ввести слово CMD, нажать { ENTER }

Для Vista и выше:
ПУСК, в поисковой строке написать CMD, нажать { ENTER }

Добавлено через 2 минуты
Затем выполнить по очереди команды указанные выше.
(можете вставлять команды в консоль из буфера обмена - правая кнопка мыши -> "Вставить")

И сюда скрин того, что получилось кнопкой PrintScreen. Вставить в Paint.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
08.10.2013, 20:53  [ТС] 9
Dragokas, спасибо за растолкование!)

Цитата Сообщение от Dragokas Посмотреть сообщение
выполнить по очереди команды
Не! Так никакого наблюдения не выйдет!

Цитата Сообщение от Dragokas Посмотреть сообщение
Bash
1
tasklist | find /i "explorer.exe"
Как я смогу узнать что команда выполнена? Он же не сообщает ни одного, ни другого!(

Цитата Сообщение от Dragokas Посмотреть сообщение
Bash
1
rmdir /s /q "B:\Documents and Settings\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch"
А это я наперед знаю, что он выполнит его в самом лучшем виде! Потому, что выполнение этой команды будет происходить после загрузки системой эксплорера (поскольку ввожу я ее сам в консоль).
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
08.10.2013, 23:47 10
Цитата Сообщение от Bazaroff Посмотреть сообщение
Он же не сообщает ни одного, ни другого!(
А потренироваться на настоящей винде???

Выполнение команды при заданном условии


Я зануление убрал в прошлый раз.
Если ничего не выдает, значит и процесса такого нет - Explorer.exe

Я не знаю какой процесс в Вашем Live CD отвечает за загрузку оболочки.
Придется Вам самому найти эту информацию.
Список весь процессов доступен по команде tasklist
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
09.10.2013, 11:03  [ТС] 11
Dragokas, хм...

Цитата Сообщение от Dragokas Посмотреть сообщение
потренироваться на настоящей винде
А я именно так и пытаюсь! И вот странность: команда
Bash
1
tasklist
действительно выводит в консоли список процессов и в нем фигурирует explorer. А вот

Цитата Сообщение от Bazaroff Посмотреть сообщение
Bash
1
tasklist | find /i "explorer.exe"
Отличается от вашего скрина тем, что в консоли нет никакого отчета! Просто в новой строке приглашение и все!

Добавлено через 1 минуту
ЗЫ юзаю
Цитата Сообщение от Dragokas Посмотреть сообщение
Win XP
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
09.10.2013, 11:20 12
Становится интереснее, не так ли?

Выполните команду

Bash
1
tasklist > C:\temp\tasks.txt
где, C:\temp - любой существующий путь.
Приложите файл C:\temp\tasks.txt в архиве к Вашему сообщению.
1
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
09.10.2013, 20:58  [ТС] 13
Вот оне! Не знаю правильно ли я вставляю файл в сообщение.

http://www.cyberforum.ru/attachment....1&d=1381341243
0
Вложения
Тип файла: zip tasks.zip (714 байт, 12 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
09.10.2013, 21:04 14
... все нормально.

Вот попробуйте сейчас команду, которая распечатывает тот файл и ищет в нем строку explorer.exe

Bash
1
type "C:\temp\tasks.txt" | find /i "explorer.exe"
А что за LiveCD? - может я сам скачаю и попробую на виртуалке, мне не жалко места.
1
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
09.10.2013, 21:30  [ТС] 15
Опа!

Цитата Сообщение от Dragokas Посмотреть сообщение
Bash
1
type "C:\temp\tasks.txt" | find /i "explorer.exe"
Попробовал несколько раз.
В первый раз консоль откликнулась

Не удается найти указанный файл.
FIND: Неправильный формат параметра
В последующие разы только

Не удается найти указанный файл.
Добавлено через 1 минуту
Блин! В первый раз я забыл кавычки закрыть!
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
09.10.2013, 21:35 16
Bazaroff, скопировать, правый клик - вставить

Добавлено через 34 секунды
Вот я и говорю - это ничем не отличается от:

Bash
1
tasklist | find /i "explorer.exe"
1
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
09.10.2013, 21:35  [ТС] 17
Чудеса!
Я создал пустой tasks.txt и запустил команду. Теперь об ошибке сообщений нет, но файл как был пуст, так и остался!
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
09.10.2013, 21:36 18
Знак "двойной амперсанд" после этой команды будет означать выполнить следующую за ними команду, если была найдена строка "explorer.exe"

Bash
1
tasklist | find /i "explorer.exe" && echo Строка найдена
1
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
09.10.2013, 21:37  [ТС] 19
Dragokas, простите меня ради всего святого! Не покидайте меня в этих дебрях!(((
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
09.10.2013, 21:37 20
Вот еще более нагроможденней:

Bash
1
tasklist | find /i "explorer.exe" && echo Строка найдена || echo Строка НЕ найдена
1
09.10.2013, 21:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 21:37

Не пойму выполнение команды dir /b /s drive:\*
Setlocal EnableDelayedExpansion for /f "tokens=*" %%a in ('dir /b /s...

Выполнение команды для списка файлов
Напишите пожалуйста любой простой пример по этой функции FOR %x IN (список...

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


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

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

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