Аргументы командной строки сценария становятся доступны благодаря встроенному объекту-коллекции WScript. Arguments. Эта коллекция уже рассматривалась в главе 3 «Создание сценариев и работа с объектами». Это весьма полезное средство, поскольку оно автоматически сортирует поименованные и непоименованные аргументы командной строки.
У объекта WScript. Arguments имеется два свойства, возвращающие коллекции, являющиеся поднаборами содержимого самого объекта WScript. Arguments: Возвращает в виде строки часть Значение аргумента командной строки /имя-.значение. Если в командной строке аргумент с заданным именем не указан, возвращает значение Empty. Если, как показано в следующей командной строке, значение аргумента было заключено в кавычки: somescript /title:"Это заголовок, которым я захотел воспользоваться" то WScript. Named. Item("title") возвращает строковое значение Это заголовок, которым я захотел воспользоваться без кавычек. Для таких простых аргументов, как /имя, всегда возвращается значение Empty; чтобы определить, указан этот аргумент или нет, нужно использовать метод Exists. Для довольно-таки странных булевых переключателей, указываемых в виде /имя+ или /имя-, возвращается значение True (-1), если аргумент оканчивается знаком +, или False (0), если аргумент оканчивается знаком -. (Что касается меня, я этим синтаксисом никогда не пользовался.) Возвращает Тrue, если поименованный аргумент указан в командной строке, в противном случае возвращает False. Этот метод используется для обнаружения присутствия «простых» аргументов, например /verbose. В качестве простого примера, в сценарии, чья командная строка представлена в следующем формате: myscript Проблемой простого подхода является следующее: если пользователь наберет, скажем, /verbse вместо /verbose, сценарий этого не заметит. Хотя Windows Script Host убеждается в присутствии тех аргументов, которые в разделе < runtime> объявлены обязательными, он игнорирует поименованные аргументы, которые не были определены в разделе <runtime>. Поэтому «verbse» находится в коллекции Named, а пользователь никогда не узнает, что он допустил ошибку. Для сценария, рассчитанного на ежедневное использование другими людьми, это неприемлемо. Убедиться в том, что в командной строке набраны только правильные аргументы, поможет следующий шаблон.