CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
-
DimmKo
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Товарищи, помогите, пожалуйста, написать скрипт для Windows XP.
Задача: проверить наличие файла test1:
1) если файл есть, то ничего не делать. Выход.
2) если файла нет, то:
2.1) проверить наличие процесса proc1: Если есть - завершить, если нет - ничего не делать.
2.2) проверить наличие процесса proc2: Если есть - завершить, если нет - ничего не делать.
2.3) скопировать test1.a --> test1, запустить proc1 (тот сам запустит proc2, потому этого достаточно).
Я, к сожалению, в скриптах не силен. В Linux простые скрипты мне даются, а в Windows пока никак.
Буду благодарен за помощь.
Спасибо.
Задача: проверить наличие файла test1:
1) если файл есть, то ничего не делать. Выход.
2) если файла нет, то:
2.1) проверить наличие процесса proc1: Если есть - завершить, если нет - ничего не делать.
2.2) проверить наличие процесса proc2: Если есть - завершить, если нет - ничего не делать.
2.3) скопировать test1.a --> test1, запустить proc1 (тот сам запустит proc2, потому этого достаточно).
Я, к сожалению, в скриптах не силен. В Linux простые скрипты мне даются, а в Windows пока никак.
Буду благодарен за помощь.
Спасибо.
-
Iska
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Цитата DimmKo:
проверить наличие файла test1
Проверить наличие файла где?
Цитата DimmKo:
скопировать test1.a --> test1
А если нет test1.a?
Цитата DimmKo:
запустить proc1
Откуда запустить?
проверить наличие файла test1
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Проверить наличие файла где?
Цитата DimmKo:
скопировать test1.a --> test1
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
А если нет test1.a?
Цитата DimmKo:
запустить proc1
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Откуда запустить?
-
DimmKo
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Спасибо за ваш ответ.
Уточняю.
Цитата Iska:
Проверить наличие файла где?
в том же самом каталоге, где будет скрипт
для удобства и т.п., допустим, все лежит в D:\script1
Цитата Iska:
А если нет test1.a?
лучше тогда, конечно, что-то типа touch test1
Цитата Iska:
Откуда запустить?
всё в пределах одного каталога.
Если можно использовать глобальные переменные, то тогда там можно пути прописать.
Уточняю.
Цитата Iska:
Проверить наличие файла где?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
в том же самом каталоге, где будет скрипт
для удобства и т.п., допустим, все лежит в D:\script1
Цитата Iska:
А если нет test1.a?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
лучше тогда, конечно, что-то типа touch test1
Цитата Iska:
Откуда запустить?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
всё в пределах одного каталога.
Если можно использовать глобальные переменные, то тогда там можно пути прописать.
-
Iska
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Цитата DimmKo:
лучше тогда, конечно, что-то типа touch test1
Переведите, пожалуйста, на русский. Хотелось бы услышать ответ на вопрос: что делать, если файл test1.a не существует?
Цитата DimmKo:
Если можно использовать глобальные переменные, то тогда там можно пути прописать.
Переменные окружения не бывают «глобальными».
лучше тогда, конечно, что-то типа touch test1
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Переведите, пожалуйста, на русский. Хотелось бы услышать ответ на вопрос: что делать, если файл test1.a не существует?
Цитата DimmKo:
Если можно использовать глобальные переменные, то тогда там можно пути прописать.
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Переменные окружения не бывают «глобальными».
-
DimmKo
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Цитата Iska:
Переведите, пожалуйста, на русский. Хотелось бы услышать ответ на вопрос: что делать, если файл test1.a не существует?
попробую.
Предлагаю немного логику поменять. Убрать
скопировать test1.a --> test1
и
создать test1
Т.е. если файла test1 не существует, то создадим его. Как есть, без расширений и т.п.
в Linux это делает команда touch, как в Windows не знаю.
Переведите, пожалуйста, на русский. Хотелось бы услышать ответ на вопрос: что делать, если файл test1.a не существует?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
попробую.
Предлагаю немного логику поменять. Убрать
скопировать test1.a --> test1
и
создать test1
Т.е. если файла test1 не существует, то создадим его. Как есть, без расширений и т.п.
в Linux это делает команда touch, как в Windows не знаю.
-
Elven
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Упущен вариант с наличием НЕСКОЛЬКИХ одноименных процессов. Пока рыбы набросал...
Код:
DimmKo, в линях файл создать можно не только touch, собственно touch нужен весьма редко, если есть нужность именно создать файл и более ничего. Уже и вспомнить не могу, когда мне это нужно было последний раз.
Код:
Код: Выделить всё
if not exist test1 (
for /f "tokens=2" %%i in ('tasklist ^| findstr ^"proc1.exe proc2.exe^"') do (
taskkill /PID %%i /F
)
if exist test1.a (
copy test1.a test1
start proc1.exe
) ELSE (
type NUL > test1
start proc1.exe
)
)DimmKo, в линях файл создать можно не только touch, собственно touch нужен весьма редко, если есть нужность именно создать файл и более ничего. Уже и вспомнить не могу, когда мне это нужно было последний раз.
-
Iska
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
DimmKo, вообще-то touch делает немного другое. Ну, да ладно.
Код:
Реальные имена вместо test1, proc1, proc2 расставляйте сами.
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
if not exist "%~dp0test1" (
>nul 2>&1 taskkill.exe /im "proc1" /im "proc2"
>nul copy nul "%~dp0test1"
start "" "%~dp0proc1"
)
endlocal
exit /b 0Реальные имена вместо test1, proc1, proc2 расставляйте сами.
-
DimmKo
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Elven, спасибо большое... сейчас попробую на тестовой машине проверить.
Цитата Elven:
НЕСКОЛЬКИХ одноименных процессов
подразумевается, что имя процессора уникальное и как будто бы нельзя 2 раза запустить. Я на деле не проверял, но может на тестовый закину и попробую.
Мне сейчас хотя бы понимать, что файл есть или нет, и от этого уже думать.
Скрытый текст
[spoiler]Конечно, у меня вощникла мысль, расшарить каталог, подцепить его в linux, и там сделать проверку наличия файла. Но хотелось бы штатными средствами это решить.[/spoiler]
Цитата Iska:
вообще-то touch делает немного другое. Ну, да ладно.
а именно изменяет время файла, но если тот существует. Если же файла нет - просто создает его.
Спасибо за помощь.
Сейчас проверю.
Цитата Elven:
НЕСКОЛЬКИХ одноименных процессов
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
подразумевается, что имя процессора уникальное и как будто бы нельзя 2 раза запустить. Я на деле не проверял, но может на тестовый закину и попробую.
Мне сейчас хотя бы понимать, что файл есть или нет, и от этого уже думать.
Скрытый текст
[spoiler]Конечно, у меня вощникла мысль, расшарить каталог, подцепить его в linux, и там сделать проверку наличия файла. Но хотелось бы штатными средствами это решить.[/spoiler]
Цитата Iska:
вообще-то touch делает немного другое. Ну, да ладно.
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
а именно изменяет время файла, но если тот существует. Если же файла нет - просто создает его.
Спасибо за помощь.
Сейчас проверю.
-
DimmKo
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Iska, огромное спасибо за Вашу работу (скрипт).
Поставил в планировщик - всё супер.
Скажите, пожалуйста, можно ли добавить сюда логирование? Ну что бы он в текстовый документ писал что он делает?
И еще, могу ли я использовать данный скрипт (со ссылкой на эту тему и на вас, как автора) в написании заметки?
Спасибо.
Поставил в планировщик - всё супер.
Скажите, пожалуйста, можно ли добавить сюда логирование? Ну что бы он в текстовый документ писал что он делает?
И еще, могу ли я использовать данный скрипт (со ссылкой на эту тему и на вас, как автора) в написании заметки?
Спасибо.
-
Iska
Re: CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Цитата DimmKo:
Скажите, пожалуйста, можно ли добавить сюда логирование? Ну что бы он в текстовый документ писал что он делает?
Можно. А что, собственно, писать-то — весь код из четырёх строчек?!
Цитата DimmKo:
И еще, могу ли я использовать данный скрипт (со ссылкой на эту тему и на вас, как автора) в написании заметки?
Можете. Используйте, кто ж мешает.
Скажите, пожалуйста, можно ли добавить сюда логирование? Ну что бы он в текстовый документ писал что он делает?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Можно. А что, собственно, писать-то — весь код из четырёх строчек?!
Цитата DimmKo:
И еще, могу ли я использовать данный скрипт (со ссылкой на эту тему и на вас, как автора) в написании заметки?
CMD/BAT - [решено] Помощь со скриптом - проверка наличия файла и процессов
Можете. Используйте, кто ж мешает.