Онлайн-радио  
Слушать ONLINE PLAYER Radiorecord
 
Среда, 19.12.2018, 03:23   Приветствую Вас Гость  |  Регистрация  |  Вход  
[ · Главная страница сайта · Каталог файлов · Форум · ] [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: BestAdmin  
Форум » Администрирование » Система » Зацикливание действий в .bat файле (Зацикливание действий в .bat файле)
Зацикливание действий в .bat файле
BestAdminДата: Суббота, 09.04.2011, 16:36 | Сообщение # 1
ФельдМаршал всех времен
Группа: Администраторы
Сообщений: 40
Репутация: 0
Статус: Offline
Все действия нужно прописать в файле с расширением .bat

Например, если мы хотим, чтобы выполнялась проверка наличия каталога и если его нет, то создать его, то нужно прописать следующие строки:

Возьмем для примера каталог, расположенный на диске C: и называющийся TEST

Code

if not exist "C:\TEST" (
:loop
md "C:\TEST"
ping 127.0.0.1 -n 3 -w 1000 > nul
if not exist "C:\TEST" ( @echo Не удалось создать каталог "C:\TEST" && goto :loop )
)

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

set KATALOG=C:\TEST

if not exist "%KATALOG%" (
:loop
md "%KATALOG%"
ping 127.0.0.1 -n 3 -w 1000 > nul
if not exist "%KATALOG%" ( @echo Не удалось создать каталог "%KATALOG%" && goto :loop )
)

В этом случае нужно будет просто сменить название каталога в переменной KATALOG.

В случае, если нужно наоборот при наличии каталога удалить его, нужно прописать следующее:

Code

set KATALOG=C:\TEST

if exist "%KATALOG%" (
:loop
rd "%KATALOG%"
ping 127.0.0.1 -n 3 -w 1000 > nul
if exist "%KATALOG%" ( @echo Не удалось удалить каталог "%KATALOG%" && goto :loop )
)

Также можно сделать переименование или перемещение каталога, в случае если он существует:

Code

set KATALOG=C:\TEST

if exist "%KATALOG%" (
:loop
move "%KATALOG%" "%KATALOG%1"
ping 127.0.0.1 -n 3 -w 1000 > nul
if exist "%KATALOG%" ( @echo Не удалось переименовать каталог "%KATALOG%" && goto :loop )
)

В этом случае, если каталог TEST существует, то он будет переименован в TEST1. Если каталога TEST нет, то ничего не произойдет и цикл прекратится.

В любом случае, я думаю, мысль зацикливания проверки понятна.
Пинг используется для задержки проверки в 3 секунды. Если задержку проверки не делать, то каталог может не успеть переименоваться или удалиться или создаться, в зависимости от первоначальных условий, и возможны ошибки выполнения условий.

 
Форум » Администрирование » Система » Зацикливание действий в .bat файле (Зацикливание действий в .bat файле)
  • Страница 1 из 1
  • 1
Поиск: