Могучий шелл Naked Snake Хакер, номер #091, стр. 091-040-2 PS C:\Documents and Settings\si> "test" test PS C:\Documents and Settings\si> 5+3*2 11 Проще говоря, PowerShell работает с данными, которые вводятся в командную строку с переменными. Ими даже можно манипулировать с помощью разных методов. Смотри, к примеру, на результат метода split: PS D:\Documents and Settings\snake> "shut up mazafaka".split(" "); shut up mazafaka Строка разбилась на части по пробелу. Попробуй метод substring(int Indexstart) - выведется часть строчки, начиная с indexstart. Впрочем, любые команды и запуск исполняемых файлов осуществляется как есть — главное не писать их в кавычках. Очень просто объявляются и переменные. Для этого используется стандартный оператор присвоения — «=». Зададим, например, массив и хэш значений: PS C:\Documents and Settings\si> $massiv=@(1,2,3,4,5) PS C:\Documents and Settings\si> $hash=@{key0="value1"; key1="value2"; key2="value3"} А теперь выведем второй элемент каждого из них (замечу, что нумерация индексов начинается с нуля): PS C:\Documents and Settings\si> $massiv[1] 2 PS C:\Documents and Settings\si> $hash["key1"] value1 Теперь поговорим о другом важном отличие PowerShell. В никсах каждая утилита имеет разное количество аргументов и парсит переданные ей данные по-своему, то же самое касается и вывода данных. В msh команды называются Command lets (сокращенно — cmdlet'ами) и наследуются от одного базового класса. Отсюда все вытекающие последствия: данные они парсят одинаково, обладают схожими методами и на выходе подают данные в специально структурированном виде. Все командлеты — это наименьший модуль функциональности системы, своеобразный аналог встроенных команд в других оболочках. Cmdlet обозначается парой «глагол-оболочка», поэтому всегда имеет очень простое и запоминающиеся имя. Например, список запущенных процессов и информации о них можно получить, набрав в консоли команду Get-Process: PS C:\Documents and Settings\si> Get-Process Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 105 5 1216 3580 32 0,06 2940 alg 16 1 1388 1152 13 0,02 1284 cmd 581 7 1852 5256 28 60,72 896 csrss [..] По умолчанию в поставке поверх шелла идет примерно 130 встроенных cmdlet’ов. Их список можно получить с помощью командлета get-commands, а справку по каждому из них — с помощью get-help <название_командлета>. |