4. Объект WshArguments
4.1. Создание объекта
Пример:
Set WshArg = WScript.Arguments
4.2. Свойства
4.2.1. Item
Синтаксис:
Item(<Index>)
Возвращаемое значение: значение n-ного элемента коллекции (нумерация начинается с нуля).
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
wscript.exe Path /param1
где "Path" - путь к файлу скрипта.
Пример:
Set WshArg = WScript.Arguments If WshArg.Count>0 Then MsgBox WshArg.Item(0) MsgBox WshArg(0) End If
4.2.2. Length
Синтаксис:
Length
Возвращаемое значение: число элементов коллекции (количество аргументов, переданных скрипту).
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
wscript.exe Path /param1 /param2
где "Path" - путь к файлу скрипта.
Пример:
MsgBox WScript.Arguments.Length
4.2.3. Named
Синтаксис:
Named
Возвращаемое значение: коллекция именных параметров, переданных скрипту.
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4
где "Path" - путь к файлу скрипта.
Пример:
Set objNamed = WScript.Arguments.Named If objNamed.Exists("Name") Then WScript.Echo "Имя: " & objNamed.Item("Name") If objNamed.Exists("Computer") Then WScript.Echo "Компьютер: " & objNamed("Computer") WScript.Echo "Число именных параметров: " & objNamed.Length WScript.Echo "Число именных параметров: " & objNamed.Count
4.2.4. Unnamed
Синтаксис:
Unnamed
Возвращаемое значение: коллекция безымянных параметров, переданных скрипту.
Замечание: только чтение. Приведённый ниже пример можно запустить например так:
wscript.exe Path /Name:"Vasya Pupkin" param2 /Computer:Server01 param4
где "Path" - путь к файлу скрипта.
Пример:
Set objUnnamed = WScript.Arguments.Unnamed If objUnnamed.Count>0 Then WScript.Echo "Первый безымянный параметр: " & objUnnamed.Item(0) If objUnnamed.Length>1 Then WScript.Echo "Второй безымянный параметр: " & objUnnamed(1)
4.3. Методы
4.3.1. Count
Синтаксис:
Count
Назначение: возвращает число элементов коллекции (количество аргументов, переданных скрипту).
Параметры: нет.
Описание: приведённый ниже пример можно запустить например так:
wscript.exe Path /param1 /param2
где "Path" - путь к файлу скрипта.
Пример:
MsgBox WScript.Arguments.Count
4.3.2. ShowUsage
Синтаксис:
ShowUsage
Назначение: выводит на экран информацию о запущенном сценарии (описание аргументов, пример запуска). Подобную информацию можно задать только при использовании WSH-сценариев с разметкой XML, поэтому метод имеет смысл только в таких сценариях.
Параметры: нет.
Пример:
WScript.Arguments.ShowUsage
Объект WshArguments
Объект WshArguments
содержит коллекцию всех параметров командной строки запущенного сценария или ярлыка Windows. Этот объект можно создать только спомощью свойства Arguments
объектов WScript
и WshShortcut
.
В принципе, работать с элементами коллекции WshArguments
можно стандартным для JScript образом — создать объект Enumerator
и использовать его методыmoveNext
, item
и atEnd
. Например, вывести на экран все параметры командной строки, с которыми запущен сценарий, можно следующим образом (листинг 1.4).
Листинг 1.4. Вывод всех параметров сценария (стандартные коллекции JScript)
/********************************************************************/
/* Имя: EnumArgs.js */
/* Язык: JScript */
/* Описание: Вывод на экран параметров запущенного сценария */
/********************************************************************/
var objArgs, e, x;
objArgs = WScript.Arguments; //Создаем объект WshArguments
//Создаем объект Enumerator для коллекции objArgs
e = new Enumerator(objArgs);
for (;!e.atEnd();e.moveNext())
Файловые системы в Linux
ReiserFS (Reiser3) — одна из первых журналируемых файловых систем под Linux, разработана Namesys. Имеет некоторые врождённые головные боли, но в целом неплохая система, ведущая отсчёт дней своих с 2001 года. Оговорюсь, что смысл журналируемых систем заключается в дисковых транзакциях, которые последовательно пишутся в специальную зону диска (журнал, он же лог), перед тем как данные попадают в конечные точки файловой системы. Максимальный объём тома для этой системы равен 16 тебибайт (16*240 байт).
JFS (Journaled File System) — файловая система, детище IBM, явившееся миру в далёком 1990 году для ОС AIX (Advanced Interactive eXecutive). В виде первого стабильного релиза, для пользователей Linux, система стала доступна в 2001 году. Из плюсов системы — неплохая масштабируемость. Из минусов — не особо активная поддержка на протяжении всего жизненного цикла. Максимальный рамер тома 32 пэбибайта (32*250 байт).
ext (extended filesystem) — появилась в апреле 1992 года, это была первая файловая система, изготовленная специально под нужды Linux ОС. Разработана Remy Card с целью преодолеть ограничения файловой системы Minix.
ext2 (second extended file system) — была разработана Remy Card в 1993 году. Не журналируемая файловая система, это был основной её недостаток, который исправит ext3.
ext3 (third extended filesystem) — по сути расширение исконной для Linux ext2, способное к журналированию. Разработана Стивеном Твиди (Stephen Tweedie) в 1999 году, включена в основное ядро Linux в ноябре 2001 года. На фоне других своих сослуживцев обладает более скромным размером пространства, до 4 тебибайт (4*240 байт) для 32-х разрядных систем. На данный момент является наиболее стабильной и поддерживаемой файловой системой в среде Linux.
Reiser4 — первая попытка создать файловую систему нового поколения для Linux. Впервые представленная в 2004 году, система включает в себя такие передовые технологии как транзакции, задержка выделения пространства, а так же встроенная возможность кодирования и сжатия данных. Ханс Рейзер (Hans Reiser), главный разработчик системы, рекламировал использовать своё детище непосредственно как БД с улучшенными метаданными. После того, как Ханс Рейзер был осуждён за убийство в 2008 году, дальнейшая судьба системы стала сомнительной.
ext4 — попытка создать 64-х битную ext3 способную поддерживать больший размер файловой системы (1 эксбибайт). Позже добавились возможности — непрерывные области дискового пространства, задержка выделения пространства, онлайн дефрагментация и прочие. Обеспечивается прямая совместимость с системой ext3 и ограниченная обратная совместимость при недоступной способности к непрерывным областям дискового пространства.
UPD: Btrfs (B-tree FS или Butter FS) — проект изначально начатый компанией Oracle, впоследствии поддержанный большинством Linux систем. Многие считаеют систему эдаким ответом на ZFS. Ключевыми особенностями данной файловой системы являются технологии: copy-on-write, позволяющая сделать снимки областей диска (снапшоты), которые могут пригодится для последующего восстановления; контроль за целостностью данных и метаданных (с повышенной гарантией целостности); сжатие данных; оптимизированный режим для накопителей SSD (задаётся при монтировании) и прочие. Немаловажным фактором является возможность перехода с ext3 на Btrfs. С августа 2008 года данная система выпускается под GNU GPL.
Tux2 — известная, но так и не анонсированная публично файловая система. Создатель Дэниэл Филипс (Daniel Phillips), система базируется на алгоритме «Фазового Дерева», который как и журналирование защищает файловую систему от сбоев. Организована как надстройка на ext2.
Tux3 — наступая на пятки Btrfs, представлена новая файловая система. Система создана на основе FUSE (Filesystem in Userspace), специального модуля для создания файловых систем на *nix платформах. Данный проект ставит перед собой цель избавиться от привычного журналирования, взамен предлагая версионное восстановление (состояние в определённый промежуток времени). Преимуществом используемой в данном случае версионной системы, является способ описания изменений, где для каждого файла создаётся изменённая копия, а не переписывается текущая версия. Такой подход позволяет более гибко управлять версиями.
UPD: Xiafs — задумка и разработка данной файловой системы принадлежат Frank Xia, основана на файловой системе MINIX. В настоящее время считается устаревшей и практически не используется. Наряду с ext2 разрабатывалась, как замена системе ext. В декабре 1993 года система была добавлена в стандартное ядро Linux. И хотя система обладала большей стабильностью и занимала меньше дискового пространства под контрольные структуры — она оказалась слабее ext2, ведущую роль сыграли ограничения максимальных размеров файла и раздела, а так же способность к дальнейшему расширению.
UPD: ZFS (Zettabyte File System) — изначально созданная в Sun Microsystems файловая система, для небезызвестной операционной системы Solaris в 2005 году. Отличительные особенности — отсутствие фрагментации данных как таковой, возможности по управлению снапшотами (snapshots), пулами хранения (storage pools), варьируемый размер блоков, 64-х разрядный механизм контрольных сумм, а так же способность адресовать 128 бит информации! В Linux системах может использоваться посредствам FUSE.