есть командный файл. . он испольняется так. .
запуск командного файла и приостановка его выполнения на заданную
величину времени. Величина задержки (5, 10, 20, 30, 60 секунд) выбирается
пользователем с помощью меню
есть код бат файла. . народ помогите мне нужно узнать что делают строчки 2) 3) 10)
1) @echo off
2)Setlocal EnableDelayedExpansion
3) ind "Button" <"%~f0" | more +1
4) Set Button.1=5
5) Set Button.2=10
6) Set Button.3=20
7) Set Button.4=30
8) Set Button.5=60
9) choice /C 12345 /M "Choose Delay"
10) timeout /t! button.%errorlevel%! /nobreak
заранее спасибо)
Другие языки программирования и технологии
Командные файлы
2)Setlocal EnableDelayedExpansion
- Необходимо для того, чтобы была действительной конструкция! button.%errorlevel%!, которая в свою очередь необходима из-за вложенности одной переменной в другую.
3) find "Button" <"%~f0" | more +1
-Ищет все вхождения строки Button в самом командном файле .
%~f0 - переменная %0, содержащая путь к исполняемому командному файлу, расширяется до полного имени. Символ < означает ввод из файла.
| more +1 - вывод команды передается на вход команды more, которая нужна для того, чтобы пропустить вывод первого вхождения Button, т. е. самой строки с самой командной find (параметр +1). Таким образом будут выведены только строки Set Button....
10) timeout /t! button.%errorlevel%! /nobreak
- запуск (внешней) программы timeout с ключами.
!button.%errorlevel%! - вначале раскрывается вложенная переменная errorlevel, значение которой соответствует результату выполнения choice (введенной цифре) . Затем раскрывается все выражение полностью. Например если была введена цифра 4, то будет раскрыта переменная Button.4 (в строку 30). Очевидно, что данное значение используется как указание на количество секунд (параметр /t). Параметр /nobreak, как нетрудно догадаться, означает запрет на прерывание выполнения команды пользователем.
- Необходимо для того, чтобы была действительной конструкция! button.%errorlevel%!, которая в свою очередь необходима из-за вложенности одной переменной в другую.
3) find "Button" <"%~f0" | more +1
-Ищет все вхождения строки Button в самом командном файле .
%~f0 - переменная %0, содержащая путь к исполняемому командному файлу, расширяется до полного имени. Символ < означает ввод из файла.
| more +1 - вывод команды передается на вход команды more, которая нужна для того, чтобы пропустить вывод первого вхождения Button, т. е. самой строки с самой командной find (параметр +1). Таким образом будут выведены только строки Set Button....
10) timeout /t! button.%errorlevel%! /nobreak
- запуск (внешней) программы timeout с ключами.
!button.%errorlevel%! - вначале раскрывается вложенная переменная errorlevel, значение которой соответствует результату выполнения choice (введенной цифре) . Затем раскрывается все выражение полностью. Например если была введена цифра 4, то будет раскрыта переменная Button.4 (в строку 30). Очевидно, что данное значение используется как указание на количество секунд (параметр /t). Параметр /nobreak, как нетрудно догадаться, означает запрет на прерывание выполнения команды пользователем.
вот в чем хватило сил разобраться
setlocal enabledelayedexpansion
В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл.
find "Button" <"%~f0" | more +1
+n : Start displaying the first file at line n
more выведет на экран со строки 1 результаты команды
find "Button" <"%~f0"
%0 is replaced by the batch file name
%~f0
Expands %0 to a fully qualified path name.
setlocal enabledelayedexpansion
В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл.
find "Button" <"%~f0" | more +1
+n : Start displaying the first file at line n
more выведет на экран со строки 1 результаты команды
find "Button" <"%~f0"
%0 is replaced by the batch file name
%~f0
Expands %0 to a fully qualified path name.
вторая, отключить локальное устройство. Остальные не знаю
Похожие вопросы
- Командный файл, который выводит список файлов, находящихся в домашнем каталоге пользователя и недоступных ему по чтению.
- Написать командный файл
- Помогите создать командный файл!
- Как изменить букву диска через командную строку (или пакетный файл)?
- Вопрос по .bat файлу. Как создать пустой txt файл через командную строку?
- Почему разработчики не доработали возможность полноценной работы с компьютером в командной строке ?)
- Как с помощью командной строки все файлы с расширением .ехе с диска С скопировать в папку Р1 на диске С?
- Вопрос про командную строку!
- Командная строка. Полезные вещи
- Как на PHP получать пути к файлам из массива names в теге input при загрузке некольких файлов?