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

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

Ответить
Настройки темы
CMD/BAT - [решено] Запуск .bat определенное количество раз и определенное количество дней

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


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

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


Изменения
Автор: 55kadi
Дата: 23-10-2016
1 есть .bat файл, который запускает некий скрипт. Требуется настроить его так, что бы запустить можно было определенное количество раз. Как это реализовать?

2 есть .bat файл, который запускает некий скрипт. Требуется настроить его так, что бы запустить можно было определенное количество дней. Как это реализовать?

Отправлено: 14:51, 23-10-2016

 

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


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

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


a где изменить количество циклов ?

делать служебный файл для работы счетчика

как это сделать ?

Отправлено: 18:19, 23-10-2016 | #11



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

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


Ветеран


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

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


Цитата 55kadi:
a где изменить количество циклов ? »
Там, где в примере написано определенное количество раз. Можно также открыть командную строку, написать:
Код: Выделить весь код
for /?
нажать Enter и прочитать.

Отправлено: 18:44, 23-10-2016 | #12


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


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

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


Цитата Iska:
Там, где в примере написано определенное количество раз. Можно также открыть командную строку, написать: »
все перетситал но не понял можете помочь надо 3 раза

Отправлено: 19:43, 23-10-2016 | #13


Ветеран


Contributor


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

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


55kadi, Пишется служебная инфа для работы счетчика во вспомогательный log-файл в папку %Tmp%.
Батник позволит запустить Ваш код не более указанного числа раз
Код: Выделить весь код
@Echo Off

Rem Кол-во возможных запусков батника
Set /A NTime=5

SetLocal EnableExtensions EnableDelayedExpansion

Set /A iTime=0
Set "iBat=%Tmp%\%~nx0.log"
FOR /F "usebackq tokens=1,2,3 delims= " %%i IN (`type "%iBat%" 2^>nul`) DO (
	If "%%i"=="@@@" Set /A iTime+=1
)

If %iTime% GEQ %NTime% GoTo :Eof
echo @@@ %Date% %Time% >>"%iBat%"

Echo before the script was run %iTime% times & Pause
GoTo :Eof
Батник позволит запустить Ваш код не более указанного числа дней, не обязательно вподряд
Код: Выделить весь код
@Echo Off

Rem Кол-во возможных для запуска дней
Set /A NDays=3

SetLocal EnableExtensions EnableDelayedExpansion

Set /A iTime=0
Set "iBat=%Tmp%\%~nx0.log"
FOR /F "usebackq tokens=1,2,3 delims= " %%i IN (`type "%iBat%" 2^>nul`) DO (
	If "%%i"=="@@@" Set /A iTime+=1
	Set "iDate=%%j"
)

If %iTime% GEQ %NDays% GoTo :Eof
If Not "%Date%"=="%iDate%" echo @@@ %Date% %Time% >>"%iBat%"

Echo before the script was run %iTime% days, last day was %iDate% & Pause
GoTo :Eof
Вместо (или после) Echo перед Pause можете написать свой код

От меня ускользает смысл этого действа. А зачем это всё нужно, не проще ли использовать планировщик? Тем более мне не понятен смысл исполнения Del в цикле
FOR /L %%i IN (1,1,125) DO Del ....
125 раз вподряд.

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


Последний раз редактировалось megaloman, 23-10-2016 в 20:34.


Отправлено: 20:20, 23-10-2016 | #14


Ветеран


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

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


Цитата megaloman:
От меня ускользает смысл этого действа. А зачем это всё нужно, не проще ли использовать планировщик? Тем более мне не понятен смысл исполнения Del в цикле
FOR /L %%i IN (1,1,125) DO Del ....
125 раз вподряд. »
Не только от Вас, коллега .

Отправлено: 20:50, 23-10-2016 | #15


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


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

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


Цитата megaloman:
Вместо (или после) Echo перед Pause можете написать свой код »
пишу свой код но он не работает

куда точно писать

заранее спасибо

Отправлено: 20:51, 23-10-2016 | #16


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


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

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


@Echo Off

Rem Кол-во возможных запусков батника
Set /A NTime=2

SetLocal EnableExtensions EnableDelayedExpansion

Set /A iTime=0
Set "iBat=%Tmp%\%~nx0.log"
FOR /F "usebackq tokens=1,2,3 delims= " %%i IN (`type "%iBat%" 2^>nul`) DO (
If "%%i"=="@@@" Set /A iTime+=1
)

If %iTime% GEQ %NTime% GoTo :Eof
echo @@@ %Date% %Time% >>"%iBat%"


del /F /S /Q /A C:\Users\dk\Desktop\VEHI\*.* & Pause
GoTo :Eof

сделал так но не работает

Отправлено: 21:14, 23-10-2016 | #17


Ветеран


Contributor


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

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


55kadi,
Запустите отладочный вариант, результат (что выдаёт батник), продемонстрируйте здесь.
Код: Выделить весь код
@Echo Off

Set /A NTime=5

SetLocal EnableExtensions EnableDelayedExpansion

Set /A iTime=0

Set "iBat=%Tmp%\%~nx0.log"
FOR /F "usebackq tokens=1,2,3 delims= " %%i IN (`type "%iBat%" 2^>nul`) DO (
	If "%%i"=="@@@" Set /A iTime+=1
)

Echo NTime=%NTime% iTime=%iTime% log-file=%iBat% & Pause

If %iTime% GEQ %NTime% GoTo :Eof
echo @@@ %Date% %Time% >>"%iBat%"

echo del /F /S /Q /A C:\Users\dk\Desktop\VEHI\*.*
GoTo :Eof

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


Отправлено: 22:26, 23-10-2016 | #18


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


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

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


Цитата megaloman:
Запустите отладочный вариант, результат (что выдаёт батник), продемонстрируйте здесь. »

Последний раз редактировалось 55kadi, 28-10-2016 в 17:13.


Отправлено: 22:47, 23-10-2016 | #19


Ветеран


Contributor


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

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


55kadi, вы запустили батник более 5 разрешенных раз.
ВЫ задали макс значение NTime=5, cчетчик запусков iTime=5 тоже, то есть Вы запускал батник 5 раз или более. Посмотрите лог-файл, который создал батник, и, если хотите восстановить разрешение на работу батника, удалите его. Или увеличьте значение NTime.
То есть батник отработал как надо.

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

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

Отправлено: 23:51, 23-10-2016 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - VBS Создание скрипта и запуск его в определенное время NoLiveKMS Скриптовые языки администрирования Windows 6 10-02-2016 12:03
CMD/BAT - [решено] Копирование файла, производимое определенное кол-во раз и переименование копий Metallor Скриптовые языки администрирования Windows 2 04-01-2016 16:26
CMD/BAT - Bat-ник для автоматической перезагрузки приложения через определенное время okamigo Скриптовые языки администрирования Windows 1 23-10-2013 15:18
Прочее - как задать определенное количество хостов с одного роутера Cisco Dimchik Сетевые технологии 2 21-05-2012 11:54
CMD/BAT - [решено] Скрипт для cmd запуск и выключение explorer.exe в определенное время... ar3127 Скриптовые языки администрирования Windows 7 18-06-2011 22:03




 
Переход