|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов |
|
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
|
Пользователь Сообщения: 65 |
Профиль | Сайт | Отправить PM | Цитировать Товарищи, помогите, пожалуйста, написать скрипт для Windows XP.
Задача: проверить наличие файла test1: 1) если файл есть, то ничего не делать. Выход. 2) если файла нет, то: 2.1) проверить наличие процесса proc1: Если есть - завершить, если нет - ничего не делать. 2.2) проверить наличие процесса proc2: Если есть - завершить, если нет - ничего не делать. 2.3) скопировать test1.a --> test1, запустить proc1 (тот сам запустит proc2, потому этого достаточно). Я, к сожалению, в скриптах не силен. В Linux простые скрипты мне даются, а в Windows пока никак. Буду благодарен за помощь. Спасибо. |
|
Отправлено: 09:34, 03-05-2018 |
Пользователь Сообщения: 65
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Не могли бы Вы добавить, пожалуйста? Как пример: - файл есть - выхожу, - файла нет: -- убиваю процесс такой-то, -- убиваю процесс такой-то, -- создаю файл, -- запускаю процесс такой-то. Соответственно дата и время. Хотя бы понимать как часто пропадает файл. Спасибо. |
|
Отправлено: 16:48, 11-05-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата DimmKo:
@echo off setlocal enableextensions enabledelayedexpansion if not exist "%~dp0test1" ( echo %date% %time% File [%~dp0test1] not found. echo %date% %time% Try killing processes [proc1] and [proc2]... >nul 2>&1 taskkill.exe /im "proc1" /im "proc2" echo %date% %time% Creating file [%~dp0test1]. >nul copy nul "%~dp0test1" echo %date% %time% Try executing process from file [%~dp0proc1]... start "" "%~dp0proc1" ) else ( echo %date% %time% File [%~dp0test1] found. ) endlocal exit /b 0 |
|
Отправлено: 17:03, 11-05-2018 | #12 |
Пользователь Сообщения: 65
|
Профиль | Сайт | Отправить PM | Цитировать Iska, класс...
Интересно, в bash можно сделать функцию и просто ее вставлять где надо, а тут такое же возможно. Или это уже PowerShell начинается. Большое спасибо! |
Отправлено: 17:10, 11-05-2018 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата DimmKo:
|
|
Отправлено: 17:37, 11-05-2018 | #14 |
Пользователь Сообщения: 65
|
Профиль | Сайт | Отправить PM | Цитировать Iska, извините, уезжал.
я вот так делаю (не претендую на правильность) функция (bash) для логирования
Это если в консоль. Так, конечно, делаю перенаправление ">>" в файл. |
Отправлено: 13:39, 16-05-2018 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать DimmKo, спасибо, ясно.
В пакетных файлах ОС Windows такого нет. В самом пакетном файле могут использоваться «как бы» подпрограммы/процедуры (наличествует возможность передачи параметров, возврата значений через обращение к переменным окружения вызвавшего контекста, локальные переменные окружения). Кроме того, возможно использование макроподстановок. Но вот именно такого — нет. Подобное (и многое, многое другое) наличествует в новом командном языке ОС Windows — PowerShell. |
Отправлено: 14:07, 16-05-2018 | #16 |
Пользователь Сообщения: 65
|
Профиль | Сайт | Отправить PM | Цитировать Iska, спасибо за разъяснение.
Буду пытаться вникнуть в PowerShell. Правда, давно видел его синтаксис, и как-то мне показалось, что он сложный уж очень... Кстати, скрипт работает на ура. Ну, по крайней мере, я уже какое время не получаю дурацкие смс, что что-то там не работает (файл когда удаляется, то при старте программы ошибка, т.к. этого файла нет. Для чего он нужен - хз, те кто писал, уже давно уволились). Смотрю в лог, что-то он туда пишет... красотища! Вот еще раз Вам спасибо! |
Отправлено: 14:36, 16-05-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать DimmKo, рад был помочь.
|
Отправлено: 23:17, 16-05-2018 | #18 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - проверка наличия файла в директории | icetanker | Скриптовые языки администрирования Windows | 11 | 19-10-2014 21:37 | |
VBS/WSH/JS - Проверка наличия файла в папке в случае отсутствия перезагружать компьютер | NickCom | Программирование и базы данных | 4 | 19-08-2013 05:13 | |
CMD/BAT - [решено] автоматическая проверка наличия файла и его шифрование | DorianWolf | Скриптовые языки администрирования Windows | 2 | 10-12-2012 17:31 | |
Любой язык - [решено] Проверка наличия файла на веб-сервере | Vadikan | Скриптовые языки администрирования Windows | 5 | 20-05-2011 01:22 | |
CMD/BAT - [решено] Определение атрибута файла & проверка наличия процесса | user_123 | Скриптовые языки администрирования Windows | 10 | 19-11-2010 16:15 |
|