Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Dir c:\ /s /b | find LOG | more






Наличие канала (|) указывает Cmd. exe, что выход команды dir нужно отправить команде-фильтру find. Команда find выбирает только те имена файлов, в которых содержится строка «LOG». Команда more выводит на экран имена файлов, полученные командой find с паузой после заполнения каждого экрана.

Подстановка значений в переменные среды

Чтобы иметь возможность подставлять значения в переменную среды из командной строки или из сценариев, следует заключить имя соответствующей переменной в символы процентов (% имя_переменной %). Символы процентов указывают на то, что Cmd. exe должен обратиться к значениям переменных, а не делать посимвольное сравнение. После определения значения для имени переменной, имя переменной заключается в символы процентов. Cmd. exe проводит поиск всех вхождений имени переменной и заменяет его на определенное значение переменной. Например, требуется создать сценарий, содержащий различные значения (имена пользователей), и требуется определить соответствующее значение переменной среды USERNAME для каждого пользователя. Для этого следует написать сценарий с использованием переменной USERNAME, заключенной в кавычки. При выполнении сценария Cmd. exe заменит вхождения %USERNAME% соответствующими значениями, что избавит от необходимости делать это вручную для каждого пользователя. Подстановка значений не является рекурсивной. Cmd. exe проверяет переменные один раз.

Установка переменных среды

Используйте команду set для создания, удаления или отображения переменных среды. Команда set изменяет переменные только в среде текущей оболочки.

Чтобы отобразить переменную, в командной строке: set имя_переменной

Чтобы добавить переменную, в командной строке: set variablename= значение

Чтобы удалить переменную, в командной строке: set имя_переменной =

Имеется возможность использовать большинство символов в качестве значений переменных, в том числе пробел. При использовании специальных символов, таких как <, >, &, или ^, перед ними следует помещать управляющий символ (^) или кавычки. При использовании кавычек они включаются в значение переменной, так как все символы, следующие после знака равенства принимаются за значение переменной.

Чтобы создать значение переменной new& name: set varname=new^& name

Чтобы создать значение переменной " new& name": set varname=" new& name"

При вводе в командной строке set varname=new& name появляется следующее сообщение об ошибке: " 'name' is not recognized as an internal or external command, operable program or batch file."

В именах переменных регистр символов не учитывается. Однако, команда set отображает значение переменной так, как оно было введено. Можно комбинировать символы нижнего и верхнего регистра в именах переменных, чтобы облегчить восприятие кода (например, ИмяПользователя).

Примечания

Максимальный размер отдельной переменной среды составляет 8192 байта. Максимальный общий размер всех переменных среды, включая имена переменных и знак равенства, составляет 65 536 Кбайт.

Как автоматизировать запуск bat файлов

Очень часто необходимо автоматизировать запуск bat файлов для выполнения ими рутинных операций. Для запуска bat файлов по расписанию наиболее подходит Планировщик, входящий в стандартную поставку Windows. С это помощью можно очень гибко настроить запуск пакетного файла в определенные дни или часы, с определенным интервалом. Можно создать несколько расписаний и т. д.

Для локального запуска batch файлов можно пользоваться решениями от третьих фирм.
Batch файлы так же могут использоваться как логин-скрипты в доменах. При таком их использовании они будут исполняться при каждом входе пользователя в сеть не смотря на его желание. С их помощью можно автоматизировать сбор информации о машинах или о программном обеспечении, установленном на компьютерах пользователей, принудительно менять настройки Windows, устанавливать незаметно для пользователя программное обеспечение и автоматизировать решение других задач, ручное исполнение которых заняло бы очень много времени.

Как в bat файле дождаться появления определенного файла

Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл

: test
if exist c: \1.txt goto go

sleep 10

goto test

: go
notepad
Такой пакетный файл будет проверять с интервалом 10 секунд наличие в корне диска С файла 1.txt и когда файл 1.txt появится, будет выполнено действие, указанное после метки go, т. е. в этом примере будет запущен Блокнот.

Утилита sleep свободно распространяется в составе Resource Kit. Если файл 1.txt большого размера и копируется откуда-то, то может получиться так, что пакетный файл проверит его наличие в то время, как файл еще не скопировался или занят другим приложением. В таком случае, попытка выполнить какие-то действия с файлом 1.txt приведет к ошибке. Чтобы этого не произошло пакетный файл можно модифицировать следующим образом

: test
if exist c: \1.txt goto go

sleep 10

goto test

: go
rename c: \1.txt 1.txt

if not errorlevel 0 goto go

del c: \1.txt

Когда файл 1.txt скопировался на диск С не полностью, либо занят другим приложением, попытка его переименовать вызовет ошибку и цикл будет повторяться до тех пор, пока файл не скопируется полностью либо не будет освобожден. После того, как команда rename c: \1.txt 1.txt будет выполнена без ошибки (т. е. файл свободен), то с ним можно выполнять любые действия.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.