Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

Цель работы: сформировать практические навыки написания 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-сценария.

Была ли полезна данная статья?
Да
61.09%
Нет
38.91%
Проголосовало: 1105

или напишите нам прямо сейчас:

⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
Написать в MAXНаписать в TelegramНаписать в WhatsApp