Что из перечисленного характерно для san сетей. SAN vs NAS — Разница между сетью хранения и сетевым хранилищем. Примеры моделей NAS
0.00 (1 )
Общий подход.
Командные файлы - это текстовые файлы с расширением bat или cmd , строки которых представляют собой команды или имена исполняемых файлов. Когда вы запускаете на выполнение командный файл, то управление получает командный процессор операционной системы (часто называемый интерпретатором команд), который последовательно считывает и интерпретирует строки командного файла. Для Windows9X этим занимается command.com , для WinNT/2K/XP - cmd.exe . Строки командных файлов могут содержать команды самого процессора команд (FOR, GOTO, IF и т.п.) или имена исполняемых модулей (net.exe, regedit.exe, win.com и т.п.). В операционных системах WinNT/2K/XP можно получить краткую справку по составу команд с помощью командной строки:
или по конкретной команде:
HELP Имя команды
Для выдачи текста справки не на экран, а в файл, можно воспользоваться перенаправлением вывода . При использовании командной строки, стандартным устройством ввода является клавиатура, а устройством вывода - дисплей, однако эти устройства можно переназначить с использованием символов перенаправления
< - перенаправление ввода
> - перенаправление вывода (или > > - перенаправление в существующий файл, когда выводимые данные дописываются в конец файла.)
Для вывода потока данных команды
HELP в файл help.txt командная строка будет следующей:HELP > help.txt
Для вывода справки по команде GOTO в файл goto.txt:
HELP GOTO > goto.txt
Использование переменных окружения.
В командных файлах можно, а зачастую, и нужно использовать переменные окружения - переменные, значения которых характеризуют среду, в которой выполняется команда или пакетный файл. Значения переменных окружения формируются при загрузке ОС и регистрации пользователя в системе, а также могут быть заданы с помощью команды SET , формат которой:
SET [переменная=[строка]]
переменная Имя переменной среды.
строка Строка символов, присваиваемая указанной переменной.
Например, командная строка
SET mynane=Vasya
добавит переменную myname, принимающую значение Vasya.
Можно получить значение переменной в программах и командных файлах, используя ее имя, заключенное в знаки процента (%) . Например команда
выведет на экран слово time, а команда
выведет на экран значение переменной time, принимающей значение текущего времени.
А командная строка
SET PATH=C:myprog;%path%
добавит в путь поиска исполняемых программ, описываемый значением переменной PATH каталог C:myprog
Выполнение команды SET без параметров вызывают выдачу текущих значений переменных на экран, в виде:
NUMBER_OF_PROCESSORS=1 - количество процессоров
OS=Windows_NT- тип ОС
Path=E:WINDOWSsystem32;E:WINDOWS;E:Program FilesFar - путь поиска исполняемых файлов.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH - расширения для исполняемых файлов.
PROCESSOR_ARCHITECTURE=x86 - архитектура процессора.
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, AuthenticAMD - идентификатор процессора.
PROCESSOR_LEVEL=6 - уровень (номер модели) процессора.
PROCESSOR_REVISION=0801 - версия процессора.
ProgramFiles=E:Program Files - путь к папке "Program Files"
PROMPT=$P$G - формат приглашения командной строки $P - путь для текущего каталога $G - знак ">".
SystemDrive=E: - буква системного диска.
SystemRoot=E:WINDOWS - каталог ОС Windows.
Значение некоторых переменных по команде SET не выдаются. Это переменные, значения которых динамически изменяются:
%CD% - Принимает значение строки текущей директории.
%DATE% - Принимает значение текущей даты.
%TIME% - Принимает значение текущего времени.
%RANDOM% - Принимает значение случайного десятичного числа в диапазоне 1 -32767.
%ERRORLEVEL% - Принимает текущее значение кода завершения задачи ERRORLEVEL
%CMDEXTVERSION% - Принимает значение версии командного процессора CMD.EXE для расширенной обработки команд.
%CMDCMDLINE% - Принимает значение строки, которая вызвала командный процессор.
Для просмотра значения переменной можно использовать командную строку:
ECHO %переменная%
Входные параметры для командного файла.
Существует возможность передать командному файлу параметры командной строки и использовать их значения в операторах самого командного файла.
BAT-файл < параметр1 > , < параметр2 >, ... < параметрN >
В самом командном файле первый параметр будет доступен как переменная %1 , второй - %2 и т.п. Имя самого командного файла доступно как переменная %0 . Для примера создадим командный файл, задачей которого будет выдача на экран значений введенных параметров. Обычно для вывода текста используется команда
ECHO < текст >
Однако если текст заменить на %1, - то будет выдан первый параметр, на %2 - второй и т.д.
Создаем файл parm.bat следующего содержания:
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3
и запускаем его на выполнение следующей командой:
parm.bat FIRST second “two words”
после его выполнения вы поймете, как это работает и что параметры с пробелами, нужно заключать в двойные кавычки. Для того, чтобы обрабатываемые командным процессором строки не выдавались на экран, можно воспользоваться командой
ECHO OFF , поместив ее в первую строку командного файла. Для того, чтобы строка командного файла игнорировалась командным процессором поместите в ее начало REM< пробел > . Таким образом можно помещать комментарии, зачастую нелишние в больших командных файлах:rem ECHO OFF выключает режим вывода содержания строк командного файла на экран
REM будет выводиться только результат их выполнения.
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3
Попробуйте ECHO OFF заменить на @ECHO OFF - результат говорит сам за себя. Строка, которая выключает режим вывода, перестала выдаваться на экран.
Переходы и метки.
В командных файлах можно использовать команды условного перехода, меняющие логику их работы в зависимости от выполнения определенных условий. Для иллюстрации приемов использования условных переходов создадим командный файл, целью которого будет присвоение заранее определенной буквы диска для съемных носителей, в качестве которых будут использоваться флэш-диски. Условия таковы - есть 2 флэш-диска, один из которых должен быть виден в проводнике как диск X: а второй - как диск Y: независимо от того, в какой порт USB они подключены. Будем считать, что реальные диски могут быть подключены как F: или G: Опознавание дисков будем выполнять по наличию файла с определенным именем (лучше такой файл сделать скрытым в корневом каталоге и назвать его как-нибудь необычно):
Flashd1.let - на первом диске
Flashd2.let - на втором
Т.е. задача командного файла заключается в том, чтобы проверить наличие на сменных дисках F: и G: файлов Flashd1.let или Flashd2.let и, в зависимости от того, какой из них присутствует, присвоить диску букву X: или Y:
Для поиска файла на диске используем команду
IF EXIST :IF EXIST имя_файла команда
В качестве команды проще всего воспользоваться SUBST , сопоставляющей имя диска и каталог.
SUBST X: C: - создает виртуальный диск X:, содержимым которого будет корневой каталог диска C:
Создаем командный файл setXY.bat со следующими строками:
После выполнения такого файла у вас появятся диски X: и Y: Но если такой файл выполнить повторно, команда SUBST выдаст сообщение об ошибке - ведь диски X: и Y: уже существуют.
Желательно обойти выполнение SUBST, если виртуальные диски X: и Y: уже созданы, (или удалять их, используя SUBST с параметром -d перед подключением). Модифицируем командный файл с использованием GOTO - передачи управления строке пакетного файла по метке.
GOTO метка
Метка должна находиться в отдельной строке и начинаться с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало сообщений об ошибке:
REM если не существует X: - то перейдем на метку SETX
IF NOT EXIST X: GOTO SETX
REM если существует X: - перейдем на проверку наличия Y:
IF EXIST G:flashd1.let SUBST X: G:
IF EXIST F:flashd1.let SUBST X: F:
REM если Y: существует - завершим командный файл.
IF EXIST Y: GOTO EXIT
IF EXIST G:flashd2.let SUBST Y: G:
IF EXIST F:flashd2.let SUBST Y: F:
REM выход из командного файла
Сообщение об ошибке SUBST исчезло. Признаки ошибок при выполнении команд можно отслеживать и в самом командном файле, анализируя переменную ERRORLEVEL , значение которой формируется при выполнении большинства программ. ERRORLEVEL равно 0, если программа завершилась без ошибок и 1 - при возникновении ошибки. Могут быть и другие значения, если они предусмотрены в выполняемой программе.
В качестве команды в строке командного файла можно использовать также командный файл. Причем, для передачи с возвратом обратно к точке выполнения вызывающего командного файла используется команда CALL . Создадим командный файл test.bat, следующего содержания:
ECHO Вызов 1.bat
ECHO Возврат.
И файл 1.bat, содержащий команду PAUSE , приостанавливающую выполнение командного файла до нажатия любой клавиши.
При выполнении test.bat будет выдано на экран сообщение
Вызов 1.bat
и управление получит 1.bat с командой pause. После начатия клавиши на клавиатуре управление получит командная строка “ECHO Возврат.” и на экран будет выдано
Если же в test.bat убрать CALL , то возврат из файла 1.bat выполняться не будет. Кстати, используя передачу управления командному файлу, можно организовать его зацикливание. Попробуйте добавить в конец файла test.bat строку:
Выйти из зацикливания командного файла можно по нажатию комбинации CTRL-Break. Возможно использование команды CALL для вызова процедуры внутри командного файла. В этом случае в качестве аргумента используется не имя внешнего файла, а метка:
....
call:proc1
....
:proc1
....
exit
....
Создание файлов.
В Windows нет специальной команды для создания файла, но без нее можно легко обойтись несколькими способами:
Копирование с консоли в файл
COPY CON myfile.txt
При выполнении этой команды данные с клавиатуры (устройство CON) будут заноситься в файл myfile.txt. Нажатие клавиши F6 или комбинации CTRL-Z завершит вывод.
Перенаправление вывода
ECHO 1 > myfile.txt
При выполнении этой команды будет создан файл myfile.txt, содержащий символ “1”
Комбинация перенаправления ввода и вывода:
COPY CON > myfile.txt < xyz
При выполнении этой команды, как и в первом случае, используется копирование с консоли в файл, но вместо данных с клавиатуры используется ввод с несуществующего устройства xyz. Система выдаст сообщение, о том, что такого устройства не существует, но пустой файл myfile.txt будет успешно создан.
Совсем простой вариант - копирование с фиктивного устройства с именем nul
в файл.
copy nul myfile.txt
Если вам часто приходится создавать пустые файлы, можно подготовить свой командный файл (например - newfile.bat или, что еще лучше, - nf.bat), а имя создаваемого файла передавать ему в качестве параметра при запуске.
Содержимое файла:
Поместите этот командный файл в системный каталог (C:windowssystem32 или любой другой, имеющийся в путях поиска, задаваемых PATH).
Командная строка:
newfile.bat myfile.txt
Или
nf.bat myfile.txt
Или
nf myfile.txt
Вот вам и команда nf для создания пустого файла в командной строке.
Присвоение съемному диску одной и той же буквы.
Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен всегда под одной и той же буквой, независимо от того, на каком компьютере он используется и как он подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST. Выберем для съемного диска желаемую букву, например - X. Имя диска, с которого был запущен командный файл доступно как переменная %~d0. Создаем командный файл следующего содержания:@echo off
subst X: %~d0
что означает - создать виртуальный диск X:, которому сопоставлен физический диск, откуда был выполнен запуск командного файла.
Дополнительное представление о подстановочных значениях переменной %0 можно получить из командного файла следующего содержания:
@echo off
ECHO ОБРАБАТЫВАЕТСЯ ФАЙЛ - %0
ECHO Дата/время создания/изменения командного файла - %~t0
ECHO Путь командного файла - "%~f0"
ECHO Диск командного файла - %~d0
ECHO Каталог командного файла - "%~p0"
ECHO Имя командного файла - %~n0
ECHO Расширение командного файла - %~x0
ECHO Короткое имя и расширение - %~s0
ECHO Атрибуты командного файла - %~a0
ECHO Размер командного файла - %~z0
Создание поколений архивов по датам и времени.
Решим следующую задачу - нужно создать архив файлов, находящихся в каталоге C:Program FilesFAR. Имя архивного файла должно состоять из текущего времени (часы.минуты.секунды - ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты (день.месяц.год - ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR. Формат запуска для создания архива:
RAR a -r < путь и имя архива > < Путь и имя архивируемых данных >
a
- команда создания архива.
-r
- ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).
Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего воспользуемся следующими факторами:
Дата, получаемая из переменной %DATE% при стандартных настройках региональных установок выглядит следующим образом: Set VDATE=%date:~3% Создаем каталог на диске C:, имя которого = текущая дата из переменной VDATE: MD C:\%VDATE% Время, получаемое из переменной %TIME%: Запустим архиватор: Теперь можно создать командный файл с содержимым: Set VDATE=%date:~3% Такой командный файл можно выполнять через автозагрузку, или как часть скрипта, при входе пользователя в домен, либо с помощью планировщика в заданное время, и у вас всегда будут в наличии упорядоченные по времени архивы критических данных.
Этот командный файл создает архивы содержимого папки "Мои Документы" пользователей Win2K/XP, размещая их в каталоги |
Устанавливает, удаляет и просматривает переменные среды. Вызванная без параметров, команда set выводит список установленных переменных среды и их значений.
Синтаксис
set [[/a [выражение ]] [/p [переменная = ]] строка ]
Параметры
/a Указывает, что параметр строка является вычисляемым числовым выражением. /p Задает значение переменной строкой ввода. переменная Указывает имя переменной, значение которой требуется задать или изменить. строка Задает строковое значение для указанной переменной. /? Отображает справку в командной строке.Примечания
- Использование команды set
в консоли восстановления
Команда set с другими параметрами доступна в консоли восстановления.
- Использование специальных символов
Символы <, >, |, &, ^ являются специальными символами командной оболочки, необходимо либо ставить перед ними управляющий символ (^), либо заключать в кавычки, при использовании символов в параметре строка (например, " строка_содержания& символ " ). При заключении в кавычки строки, содержащей специальные символы, кавычки считаются частью значения переменной среды.
- Использование переменных среды
Переменные среды используются для управления работой некоторых пакетных файлов и программ и для управления работой Windows XP и подсистемы MS-DOS. Команда set часто используется в файле Autoexec.nt для установки переменных среды.
- Вывод текущих установок среды
Когда команда set вызвана без параметров, на экран будут выведены текущие установки. Обычно эти установки включают переменные COMSPEC и PATH, используемые для поиска программ на диске. Две другие переменные среды, используемые Windows это PROMPT и DIRCMD.
- Использование параметров
При указании значений для переменной и строки значение переменной добавляется к окружению, а строка ставится в соответствие этой переменной. Если переменная уже существует, новое значение замещает старое значение.
Если в команде set указано только имя переменной и знак равенства (без значения), какое-либо значение больше не будет ставиться в соответствие переменной среды, что эквивалентно удалению переменной среды.
- Использование /a
В следующей таблице представлены операторы, поддерживающие параметр /a , в порядке убывания очередности.
При использовании логических операторов (&& ||) или оператора остатка от деления (%) заключайте выражение строки в кавычки. Любые нечисловые строки в выражении считаются именами переменной среды, чьи значения преобразованы в числа до обработки. Если указано имя переменной среды, которое не определено в текущем окружении, ей присваивается значение нуля, что позволяет выполнять арифметические операции со значениями переменной среды без использования % для получения значения.
При выполнении команды set /a из командной строки вне командного сценария, выводится конечное значение выражения.
Численные значения это десятичные числа, кроме чисел с префиксами 0x для шестнадцатеричных чисел и 0 для восьмеричных чисел. Таким образом, 0x12 тоже самое, что 18 и 022. Восьмеричное представление требует аккуратности. Например, 08 и 09 недопустимы, потому что 8 и 9 не являются восьмеричными цифрами.
- Использование /p
Используется, когда не требуется включать командную строку.
- Поддержка расширения переменной среды с задержкой
Добавлена поддержка расширения переменной среды с задержкой. Эта поддержка отключена по умолчанию, можно включить или отключить ее с помощью команды cmd /v .
- Работа с расширениями команды
При включенных расширениях команды (установлено по умолчанию) и выполнении команды set без значений, на экран выводятся все текущие переменные среды. Если же выполняется команда set со значением, отображаются переменные, соответствующие этому значению.
- Использование команды set
в пакетных файлах
При создании пакетных файлов, используйте команду set для создания переменных и использовании их в качестве числовых переменных от %0 до %9 . Также можно использовать переменные от %0 до %9 как ввод для команды set .
- Обращение к переменным команды set
из пакетных программ
При обращении к переменной из пакетной программы имя переменной должно быть заключено в знаки процентов (%). Например, если в пакетной программе создается переменная BAUD, с ней может быть связан заменяемый параметр путем использования имени %baud% в командной строке.
Примеры
Чтобы задать переменную среды с именем TEST^1, введите команду:
set testVar=test^^1
Чтобы задать переменную среды с именем TEST&1, введите команду:
set testVar=test^&1
Значением переменной команды set определяет все, что следует за знаком равенства (=). При вводе:
set testVar="test^1"
Результат будет следующим:
testVar="test^1"
Для установки переменной среды INCLUDE так, чтобы с ней была связана строка C:\Inc (каталог Inc на диске C), можно использовать следующую команду:
set include=c:\inc
Строку C:\Inc можно использовать в пакетных файлах, заключив имя INCLUDE в знаки процента (%). Например, в пакетном файле можно использовать следующую команду для вывода содержимого каталога, на который указывает переменная среды INCLUDE:
При выполнении команды строка %include% будет заменена строкой C:\Inc.
Можно также использовать команду set в пакетной программе, которая добавляет новый каталог к переменной среды PATH. Например:
@echo off
rem ADDPATH.BAT добавляет новый каталог
rem к переменной среды path.
set path=%1;%path%
set
При включенных расширениях команды (установлено по умолчанию) и выполнении команды set со значением, на экран выводятся все переменные среды, соответствующие значению. Например, при вводе в командную строку: set p , результат будет следующим:
Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
ProgramFiles=C:\Program Files
PROMPT=$P$G
Некоторые приемы и особенности работы с командой Set можно посмотреть в разделе Арифметическая обработка данных .
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Среда командной оболочки Cmd.exe определяется переменными, задающими поведение командной оболочки и операционной системы. Имеется возможность определить поведение среды командной оболочки или среды всей операционной системы с помощью двух типов переменных среды: системных и локальных. Системные переменные среды определяют поведение глобальной среды операционной системы. Локальные переменные среды определяют поведение среды в данном экземпляре Cmd.exe.
Системные переменные среды заданы заранее в операционной системе и доступны для всех процессов Windows XP. Только пользователи с привилегиями администратора могут изменять эти переменные. Эти переменные наиболее часто используются в сценариях входа в систему.
Локальные переменные среды доступны, только когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы.
В следующем списке представлены различные типы переменных в порядке убывания приоритета.
- Встроенные системные переменные
- Системные переменные куста HKEY_LOCAL_MACHINE
- Локальные переменные куста HKEY_CURRENT_USER
- Все переменные среды и пути указаны в файле Autoexec.bat.
- Все переменные среды и пути указаны в сценарии входа в систему (если он имеется).
- Переменные, используемые интерактивно в сценарии или пакетном файле
В командной оболочке каждый экземпляр Cmd.exe наследует среду своего родительского приложения. Поэтому можно изменять переменные в новой среде Cmd.exe, что не повлияет на среду родительского приложения.
В следующей таблице приведен список системных и локальных переменных среды для Windows XP.
Переменная | Описание |
|
---|---|---|
%ALLUSERSPROFILE% | Локальная | Возвращает размещение профиля «All Users». |
Локальная | Возвращает используемое по умолчанию размещение данных приложений. |
|
Локальная | Возвращает путь к текущей папке. |
|
Локальная | Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe. |
|
Системная | Возвращает номер версии текущих расширений обработчика команд. |
|
Системная | Возвращает имя компьютера. |
|
Системная | Возвращает путь к исполняемой командной оболочке. |
|
Системная | Возвращает текущие данные. Использует тот же формат, что и команда date /t . Создается командой Cmd.exe. |
|
Системная | Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки. |
|
Системная | Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». |
|
Системная | Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». |
|
Системная | Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». |
|
Локальная | Возвращает имя контроллера домена, который проверял подлинность текущей сессии. |
|
%NUMBER_OF_PROCESSORS% | Системная | Задает количество процессоров, установленных на компьютере. |
Системная | Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT. |
|
Системная | Указывает путь поиска для исполняемых файлов. |
|
Системная | Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые. |
|
%PROCESSOR_ARCHITECTURE% | Системная | Возвращает архитектуру процессора. Значения: x86, IA64. |
%PROCESSOR_IDENTFIER% | Системная | Возвращает описание процессора. |
%PROCESSOR_LEVEL% | Системная | Возвращает номер модели процессора, установленного на компьютере. |
%PROCESSOR_REVISION% | Системная | Возвращает номер модификации процессора. |
Локальная | Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe. |
|
Системная | Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe. |
|
Системная | Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог). |
|
Системная | Возвращает размещение системного каталога Windows XP. |
|
Системная и пользовательская | Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. |
|
Системная | Возвращает текущее время. Использует тот же формат, что и команда time /t . Создается командой Cmd.exe. |
|
Локальная | Возвращает имя домена, содержащего список учетных записей пользователей. |
|
Локальная | Возвращает имя пользователя, выполнившего вход в систему. |
|
Локальная | Возвращает размещение профиля для текущего пользователя. |
|
Системная | Возвращает размещение каталога операционной системы. |