Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Обход каталогов, поиск в них файла и его создание в случае отсутствия

Ответить
Настройки темы
CMD/BAT - Обход каталогов, поиск в них файла и его создание в случае отсутствия

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет всем!

Прошу помощи в написании bat-скрипт, заранее огромное спасибо!

Есть n-количество каталогов в каталоге ops:
z:\ops\dir01
z:\ops\dir02
z:\ops\dir03
z:\ops\dir0x

Начиная с первого по списку каталога dir01 (в подкаталогах не искать) нужно начать проверку на предмет отсутствия файла .lock

Как только будет найден каталог без файла .lock:
1. остановить поиск
2. создать в найденном каталоге файл .lock
3. запустить программу, дождаться её завершения (думаю использовать start /wait ops.exe) и удалить файл .lock в созданном каталоге
4. если во всех каталогах найден файл .lock - выдать уведомление "пульты заняты" и начать повторный поиск через 1 минуту.

Отправлено: 15:07, 15-03-2020

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Вы правда не видите разницу между "помощь в написании" и "напишите мне скрипт под ключ бесплатно"

Отправлено: 16:19, 15-03-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


pedrosoft, как в реальности именуются:
Цитата pedrosoft:
z:\ops\dir01
z:\ops\dir02
z:\ops\dir03
z:\ops\dir0x »
? Каким правилам подчиняется их именование?

Цитата pedrosoft:
и удалить файл .lock в созданном каталоге »
В каком таком «созданном каталоге»?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:34, 15-03-2020 | #3


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Совершенно не указали, какое имя у файла с расширением .lock
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Ops"
	Set "MaskLock=*.lock"
	Set "FileLock=File.Lock"

	Set /A WaitSek=60
	Set Program="D:\Games\5star Free Lines\Lines.exe"

	:Begin
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /A:D "%BoxIn%"`) DO (
		If Not Exist "%BoxIn%\%%d\%MaskLock%" (
			cd.>"%BoxIn%\%%d\%FileLock%"
			%Program%
			Del "%BoxIn%\%%d\%FileLock%"
			Exit /B 0
		)
	)
	Echo. &Echo !!! Пульты заняты. Ожидаем новой попытки. Ctrl/C - завершение скрипта
	Timeout %WaitSek%
	GoTo :Begin
Exit /B 0

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:48, 15-03-2020 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата megaloman:
какое имя у файла с расширением .lock »
Никакого .

Отправлено: 17:36, 15-03-2020 | #5


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Совершенно не указали, какое имя у файла с расширением .lock »
это не расширение
это дэ-факто стандарт именования для служебных файлов в linux и unix

Отправлено: 17:39, 15-03-2020 | #6


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо megaloman, это работает.

Цитата Busla:
это дэ-факто стандарт именования для служебных файлов в linux и unix »
Не служебных, а скрытых.

Отправлено: 19:57, 15-03-2020 | #7


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата pedrosoft:
Не служебных, а скрытых. »
у вас причинно-следственная связь нарушена

файлы не предназначенные для прямого использования пользователем - служебные

стали так называть служебные файлы потому, что ранние реализации UNIX из-за бага не отображали их пользователю

Отправлено: 20:54, 15-03-2020 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6676
Благодарности: 1559

Профиль | Отправить PM | Цитировать


Busla, чего вы придираетесь? Не с той ноги сегодня встали?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 21:48, 15-03-2020 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Обход каталогов, поиск в них файла и его создание в случае отсутствия

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] копирование файлов при условии отсуствия файла в нужной папке batyaPS Скриптовые языки администрирования Windows 2 16-07-2017 08:54
CMD/BAT - [решено] Создание TXT файла для каждого файла в каталоге ISO и заполнение его по шаблону onemal Скриптовые языки администрирования Windows 23 13-05-2017 15:35
VBS/WSH/JS - Создание структуры каталогов и файлов нулевого размера в них KooDI Скриптовые языки администрирования Windows 8 25-12-2013 00:52
CMD/BAT - [решено] Поиск файла, значения в файле и создания для них переменных popoves Скриптовые языки администрирования Windows 4 29-02-2012 20:59
CMD/BAT - [решено] Поиск файла и замена в его содержимого alderv Скриптовые языки администрирования Windows 3 20-08-2011 13:11




 
Переход