CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Ответить
 • Просмотры: 1
Аватара пользователя
DimmKo

Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Сообщение DimmKo »

Цитата Iska:



Можно. А что, собственно, писать-то — весь код из четырёх строчек?!
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов




если бы я знал как))

Не могли бы Вы добавить, пожалуйста?



Как пример:

- файл есть - выхожу,

- файла нет:

-- убиваю процесс такой-то,

-- убиваю процесс такой-то,

-- создаю файл,

-- запускаю процесс такой-то.



Соответственно дата и время. Хотя бы понимать как часто пропадает файл.

Спасибо.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Сообщение Iska »

Цитата DimmKo:



Не могли бы Вы добавить, пожалуйста?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов




Держите:



Код:

Код: Выделить всё

@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

При вызове пакетного файла задаёте перенаправление вывода во внешний файл, наподобие:



Код:

Код: Выделить всё

"%comspec%" /c">>"Output.txt" 2>&1 "C:\Мои проекты\0157\0001.cmd""
Аватара пользователя
DimmKo

Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Сообщение DimmKo »

Iska, класс...



Интересно, в bash можно сделать функцию и просто ее вставлять где надо, а тут такое же возможно. Или это уже PowerShell начинается.



Большое спасибо!
Аватара пользователя
DimmKo

Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Сообщение DimmKo »

Iska, извините, уезжал.



я вот так делаю (не претендую на правильность)





функция (bash) для логирования

[spoiler]Код:
[/spoiler]

Код: Выделить всё

function F_LOG () {
echo "`date +"%F %T"` $1"
}
F_LOG "START"

здесь просто для примера.



Потом этот F_LOG везде втыкиваю где надо и всё на этом.








Это если в консоль. Так, конечно, делаю перенаправление ">>" в файл.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Сообщение Iska »

DimmKo, спасибо, ясно.



В пакетных файлах ОС Windows такого нет. В самом пакетном файле могут использоваться «как бы» подпрограммы/процедуры (наличествует возможность передачи параметров, возврата значений через обращение к переменным окружения вызвавшего контекста, локальные переменные окружения). Кроме того, возможно использование макроподстановок. Но вот именно такого — нет.



Подобное (и многое, многое другое) наличествует в новом командном языке ОС Windows — PowerShell.
Аватара пользователя
DimmKo

Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов

Сообщение DimmKo »

Iska, спасибо за разъяснение.



Буду пытаться вникнуть в PowerShell. Правда, давно видел его синтаксис, и как-то мне показалось, что он сложный уж очень...



Кстати, скрипт работает на ура. Ну, по крайней мере, я уже какое время не получаю дурацкие смс, что что-то там не работает (файл когда удаляется, то при старте программы ошибка, т.к. этого файла нет. Для чего он нужен - хз, те кто писал, уже давно уволились).

Смотрю в лог, что-то он туда пишет... красотища!

Вот еще раз Вам спасибо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»