КФ МГТУ им. Н.Э. Баумана. ЛАБОРАТОРНАЯ РАБОТА № 5 «Разработка сценариев на Windows Powershell»
Цель работы: сформировать практические навыки написания PowerShell-сценариев.
Задачи: изучить понятие PowerShell-сценария, его назначение. Разработать PowerShell-сценарий в соответствии с вариантом. Провести моделирование ситуации применения разработанного PowerShell-сценария.
Теоретические сведения
Новая оболочка Windows PowerShell (предварительно она была названа Monad) была задумана разработчиками Microsoft как более мощная среда для написания сценариев и работы из командной строки. Разработчики PowerShell преследовали несколько целей. Главная и самая амбициозная из них – создать среду составления сценариев, которая наилучшим образом подходила бы для современных версий операционной системы Windows и была бы более функциональной, расширяемой и простой в использовании, чем какой-либо аналогичный продукт для любой другой операционной системы. В первую очередь эта среда должна была подходить для решения задач, стоящих перед системными администраторами (тем самым Windows получила бы дополнительное преимущество в борьбе за сектор корпоративных платформ), а также удовлетворять требованиям разработчиков программного обеспечения, предоставляя им средства для быстрой реализации интерфейсов управления к создаваемым приложениям.
Выполнение работы
Задание 1: Написать скрипт на языке оболчки, указанном преподавателем. Скрипт должен принимать как минимум 2 позиционных параметра:
- оператор, определяет, какая операция будет применяться к массиву операндов:
o add – складывает все операнды (1+2+3+4+5) между собой и пишет сумму в result.txt в текущей папке;
o sub – вычитает поочередно все операнды из первого (1-2-3-4-5) и пишет результат в result.txt;
o multi – умножает друг на друга все операнды (1*2*3*4*5) и пишет произведение в result.txt;
o div – делит первый операнд поочередно на все остальные ((((1/2)/3)/4)/5) и пишет результат в result.txt;
o fact – вычисляет факториал всех переданных операндов и пишет результаты (по значению на строку) в result.txt;
o pow – возводит каждый операнд в степень, переданную третьим позиционным параметром и пишет результаты (по значению на строку) в result.txt;
- массив операндов – строка вида ‘1 2 3 4 5’, где 1, 2, 3, 4 и 5 – операнды;
- степень для режима pow.
Краткое описание работы программы: функции test и test2 с блоком param необходимы для ввода параметров в остальные функции в нужном виде.
Функция add принимает на вход массив чисел и, поочередно перебирая все, добавляет их в пустую переменную sum, а затем возвращает полученную сумму.
Функция sub принимает на вход массив чисел, помещает нулевой элемент в промежуточную переменную razn, а затем, перебирая все последующие с первого, вычитает все из промежуточной переменной, а затем возвращает полученную разность.
Функция multi принимает на вход массив чисел, помещает нулевой элемент в промежуточную переменную umn, после повторно присваивает ей значение, умножая на каждый элемент после нулевого, а затем возвращает результат умножения.
Функция dev принимает на вход массив чисел, помещает нулевой элемент в промежуточную переменную dev, после повторно присваивает ей значение, деля на каждый элемент после нулевого, а затем возвращает результат деления.
Функция fact находит факториал числа и используется в функции fact2 для поиска факториалов всех элементов массива.
Функция pow принимает на вход массив чисел и степень функции. Степень определяет счетчик того, сколько раз число будет умножено само на себя.
Строки $параметр | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii –Append необходимы для вывода результатов в файл. –Encoding ascii обеспечивает нужную форму кодировки, -Append позволяет дописывать результат в файл, не стирая все написанное ранее.
Листинг программы:
function test {
param(
[array]$a
)
}
function test2 {
param(
[int]$s
)
}
function add ($b) {
foreach ($element in $b) {
$sum += $element
}
«Summa:» | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
$sum | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
return $sum
}
function sub ($b) {
$razn = $b[0]
for ($index = 1; $index -lt $b.count; $index++)
{
$razn -= $b[$index]
}
«Raznost:» | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
$razn | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
return $razn
}
function multi ($b) {
$umn = $b[0]
for ($index = 1; $index -lt $b.count; $index++)
{
$umn = $umn*$b[$index]
}
«Umnojit:» | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
$umn | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
return $umn
}
function dev ($b) {
$dev = $b[0]
for ($index = 1; $index -lt $b.count; $index++)
{
$dev = $dev/$b[$index]
}
«Del:» | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
$dev | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
return $dev
}
function fact([System.Management.Automation.PSObject]$b)
{
if($b -lt 0)
{
$result = 0
}
elseif($b -le 1)
{
$result = 1
}
else
{
$result = $b * (fact($b — 1))
}
return $result
}
function fact2 ([array]$b) {
«Fac:» | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
for ($index = 0; $index -lt $b.count; $index++) {
$l = fact($b[$index])
$l | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
Write-Output $l
}
}
function pow ([array]$b, $s)
{
«Pow:» | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
for($index = 0; $index -lt $b.count; $index++)
{
$k=$s
$step = $b[$index]
while($k -ne 1)
{
$step = $step*$b[$index]
$k—
}
$step | Out-File -FilePath E:\1_forPS\result.txt -Encoding ascii -Append
Write-Host $step
}
}
Результат работы:
Рисунок 1 – Результат выполнения программы
Рисунок 1 – Вывод результата в файл
Вывод: в ходе выполнения лабораторной работы были сформированы практические навыки написания PowerShell-сценариев; изучено понятие PowerShell-сценария, его назначение; разработать PowerShell-сценарий, реализующий арифметические операции и выводящий результат в тектовый файл. Провести моделирование ситуации применения разработанного PowerShell-сценария.
или напишите нам прямо сейчас:
Здравствуйте. Скажите пожалуйста, планирую поступать в магистратуру на факультет Психологии « Психология личности»в РГГУ скажите пожалуйста, есть ли у вас, ответы на вступительные экзамены? так как, планирую, сделать акцент на бюджет. Спасибо.
Арсений, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Дистанционная помощь в защите ВКР
Анастасия, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте. Нужна срочно практическая часть вкр, третья глава. Скину похожие работы, на которые можно ориентироваться
Александр, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
вкр по теме: экологический туризм России : анализ состояния, проблемы и перспективы
Людмила, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте вы защищаете ВКР?
Ольга, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать магистерскую ВКР на тему «Совершенствование логистических бизнес-процессов на примере торговой компании». Не менее 100 страниц.
Миша, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте нужна работа Вкр
Лена, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать ВКР 3 раздела Тема строительство строительство жилого дома с применением каркасно-монолитных технологий Антиплагиат от 75% ПЗ и чертежи
Владимир, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.