![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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 файлов можно пользоваться решениями от третьих фирм. Как в bat файле дождаться появления определенного файла Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл : test sleep 10 goto test : go Утилита sleep свободно распространяется в составе Resource Kit. Если файл 1.txt большого размера и копируется откуда-то, то может получиться так, что пакетный файл проверит его наличие в то время, как файл еще не скопировался или занят другим приложением. В таком случае, попытка выполнить какие-то действия с файлом 1.txt приведет к ошибке. Чтобы этого не произошло пакетный файл можно модифицировать следующим образом : test sleep 10 goto test : go if not errorlevel 0 goto go del c: \1.txt Когда файл 1.txt скопировался на диск С не полностью, либо занят другим приложением, попытка его переименовать вызовет ошибку и цикл будет повторяться до тех пор, пока файл не скопируется полностью либо не будет освобожден. После того, как команда rename c: \1.txt 1.txt будет выполнена без ошибки (т. е. файл свободен), то с ним можно выполнять любые действия.
|