Написание и запуск сценариев в интегрированной среде сценариев Windows PowerShell
В этой статье описано как создавать, редактировать, выполнять и сохранять скрипты в области скриптов.
Создание и выполнение сценариев
В области скриптов можно открывать и редактировать файлы Windows PowerShell. Сейчас нас интересуют следующие типы файлов Windows PowerShell: файлы скриптов ( .ps1 ), файлы данных скриптов ( .psd1 ) и файлы модулей скриптов ( .psm1 ). Эти типы файлов имеют цветовую подсветку синтаксиса в редакторе области сценариев. Другие стандартные файлы, которые можно открыть в области сценариев, — это файлы конфигурации ( .ps1xml ), XML-файлы и текстовые файлы.
Политика выполнения Windows PowerShell определяет, можно ли выполнять сценарии, загружать профили Windows PowerShell и файлы конфигурации. Политика выполнения по умолчанию, Restricted, запрещает выполнение сценариев и блокирует загрузку профилей. Чтобы изменить эту политику выполнения и разрешить загрузку и использование профилей, см. описание Set-ExecutionPolicy и about_Signing.
Создание файла сценария
Нажмите кнопку Создать на панели инструментов или откройте меню Файл и выберите Создать. Созданный файл появится на вкладке «Новый файл» под текущей вкладкой PowerShell. Помните, что вкладки PowerShell отображаются, только если их несколько. По умолчанию создается файл сценария ( .ps1 ), но его можно сохранить с новым именем и расширением. На одной вкладке PowerShell может быть создано несколько файлов сценариев.
Открытие существующего сценария
Нажмите кнопку Открыть. на панели инструментов или откройте меню Файл и выберите пункт Открыть. В диалоговом окне Открыть выберите файл, который требуется открыть. Открытый файл появится в новой вкладке.
Закрытие вкладки сценария
На вкладке файла, которую нужно закрыть, щелкните значок закрытия (X) или откройте меню File (Файл) и выберите Close (Закрыть).
Если файл был изменен с момента последнего сохранения, будет предложено сохранить или отменить изменения.
Отображение пути к файлу
На вкладке файла наведите курсор на его имя. Появится подсказка с полным путем к файлу сценария.
Запуск сценария
Нажмите кнопку Выполнить сценарий на панели инструментов или откройте меню Файл и выберите пункт Выполнить.
Выполнение части сценария
- Выберите часть сценария в области сценариев.
- Нажмите кнопку Выполнить выделенный фрагмент на панели инструментов или откройте меню Файл и выберите пункт Выполнить выделенный фрагмент.
Остановка выполняемого сценария
Есть несколько способов остановить выполняемый скрипт.
- На панели инструментов щелкните Остановить операцию.
- Нажмите CTRL + BREAK .
- В меню Файл выберите Остановить операцию.
Нажатие клавиш CTRL + C также сработает, если нет выделенного текста. В противном случае нажатие клавиш CTRL + C приведет к копированию выделенного текста.
Написание и редактирование текста в области сценариев
В области скриптов текст можно копировать, вырезать, вставлять, искать и заменять. Также можно отменить и повторить последнее выполненное действие. Для этого используются те же клавиши, как и во всех других приложениях Windows.
Ввод текста в области сценариев
- Установите курсор в область сценариев, щелкнув кнопкой мыши любую ее часть или выбрав пункт Перейти в область сценариев в меню Вид.
- Создайте сценарий. Цветовая подсветка синтаксиса и заполнение нажатием клавиши TAB обеспечивают более широкие возможности для редактирования в интегрированной среде скриптов Windows PowerShell.
- Подробную информацию о заполнении нажатием клавиши TAB, помогающем при вводе кода, см. в статье How to Use Tab Completion in the Script Pane and Console Pane (Использование заполнения нажатием клавиши TAB в областях сценариев и консоли).
Поиск текста в области сценариев
- Чтобы найти текст в любой части скрипта, нажмите клавиши CTRL + F или выберите Find in Script (Найти в сценарии) в меню Edit (Правка).
- Чтобы найти текст после курсора, нажмите клавишу F3 или выберите Найти следующее в сценарии в меню Правка.
- Чтобы найти текст до курсора, нажмите клавиши SHIFT + F3 или выберите Find Previous in Script (Найти предыдущее в сценарии) в меню Edit (Правка).
Поиск и замена текста в области сценариев
Нажмите клавиши CRTL + H или в меню Edit (Правка) выберите Replace in Script (Заменить в сценарии). Введите текст, который нужно найти, и замещающий текст, затем нажмите клавишу ВВОД .
Переход к определенной строке текста в области сценариев
- В области сценариев нажмите клавиши CTRL + G или выберите Go to Line (Перейти к строке) в меню Edit (Правка).
- Введите номер строки.
Копирование текста в области сценариев
- В области сценариев выделите текст, который требуется скопировать.
- Нажмите клавиши CTRL + C , щелкните значок Copy (Копировать) на панели инструментов или выберите Copy (Копировать) в меню Edit (Правка).
Вырезание текста в области сценариев
- В области сценариев выделите текст, который требуется вырезать.
- Нажмите клавиши CTRL + X , щелкните значок Cut (Вырезать) на панели инструментов или выберите Cut (Вырезать) в меню Edit (Правка).
Вставка текста в области сценариев
Нажмите клавиши CTRL + V , щелкните значок Paste (Вставить) на панели инструментов или выберите Paste (Вставить) в меню Edit (Правка).
Отмена действия в области сценариев
Нажмите клавиши CTRL + Z , щелкните значок Undo на панели инструментов или выберите Отменить в меню Правка.
Повторное выполнение действия в области сценариев
Нажмите клавиши CTRL + Y , щелкните значок Повторить на панели инструментов или выберите Повторить в меню Правка.
Сохранение сценария
Звездочка рядом с именем скрипта обозначает, что файл не был сохранен после изменения. После сохранения звездочка исчезает.
Сохранение сценария
Нажмите клавиши CTRL + S , щелкните значок Сохранить на панели инструментов или выберите Сохранить в меню Файл.
Сохранение сценария с определенным именем
- В меню Файл выберите пункт Сохранить как. Появится диалоговое окно Сохранить как.
- В поле Имя файла введите имя файла.
- В поле Тип файла выберите тип файла. Например, в поле Тип сохраняемого файла выберите «Скрипты PowerShell ( *.ps1 )».
- Нажмите Сохранить.
Сохранение сценария в кодировке ASCII
По умолчанию интегрированная среда сценариев Windows PowerShell сохраняет новые файлы скриптов ( .ps1 ), файлы данных скриптов ( .psd1 ) и файлы модулей скриптов ( .psm1 ) в кодировке Юникод (BigEndianUnicode). Чтобы сохранить сценарий в другой кодировке, например ASCII (ANSI), используйте методы Save или SaveAs объекта $psISE.CurrentFile.
Следующая команда сохраняет новый сценарий в кодировке ASCII и с именем MyScript.ps1:
$psISE.CurrentFile.SaveAs("MyScript.ps1", [System.Text.Encoding]::ASCII)
Следующая команда заменяет текущий файл сценария на файл с таким же именем, но в кодировке ASCII:
$psISE.CurrentFile.Save([System.Text.Encoding]::ASCII)
Следующая команда возвращает кодировку текущего файла:
$psISE.CurrentFile.encoding
Интегрированная среда скриптов Windows PowerShell поддерживает следующие параметры кодировки: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8 и Default. Значение параметра Default зависит от системы.
Интегрированная среда скриптов Windows PowerShell не изменяет кодировку файлов скриптов при использовании команд «Сохранить» или «Сохранить как».
См. также:
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
PowerShell is an open source project. Select a link to provide feedback:
Обратная связь
Отправить и просмотреть отзыв по
Как создать и запустить сценарий PowerShell в Windows 10 – инструкция по шагам
Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).
Скрипт – это просто набор команд, сохраненных в текстовый файл (с расширением .ps1), которые PowerShell может понять и выполнить в заданной последовательности. Единственное предупреждение заключается в том, что в отличие от командной строки, протокол безопасности по умолчанию предотвращает выполнение всех сценариев.
Это означает, что при двойном щелчке .ps1 файла в системе Windows 10 ничего не произойдёт, и если вы пытаетесь выполнить скрипт в PowerShell, вы получите сообщение об ошибке: «не может быть загружен, потому что запрещено выполнение сценариев в этой системе». Тем не менее, запускать сценарии на вашем устройстве довольно просто. Вам просто нужно включить правильную политику выполнения.
В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.
Создание файла сценария PowerShell
В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).
Создание скрипта с помощью блокнота
Чтобы создать сценарий PowerShell с помощью блокнота, выполните следующие действия:

- Откройте приложение «Блокнот».
- Создайте или вставьте сценарий. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»» Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».
- Сохраните файл под любым удобным названием, например, first_script.ps1
Создание сценария с помощью интегрированной среды сценариев
Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:
- Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке.

- В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»»

- Откройте меню Файл и нажмите кнопку Сохранить .
- Введите название сценария. Например, first_script_ise.ps1
- Сохраните скрипт.
Как только Вы выполнили эти шаги с помощью Блокнота или PowerShell ISE, сценарий готов к запуску, но он не будет выполнен. Это происходит потому, что параметры PowerShell по умолчанию всегда настроены на блокирование выполнения любого сценария.
Запуск файла сценария PowerShell
Чтобы запустить файл сценария в PowerShell, необходимо изменить политику выполнения, выполнив следующие действия:
- Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
- Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter : Set-ExecutionPolicy RemoteSigned
- Укажите тип А и ещё раз нажмите клавишу Enter .

- Введите следующую команду для запуска скрипта и нажмите клавишу Enter : & «C:\PATH\to\SCRIPT\first_script.ps1»
В приведенной выше команде обязательно измените PATH\to\SCRIPT на расположение вашего скрипта.
После выполнения этих шагов сценарий будет запущен, и если он был создан правильно, вы должны увидеть его вывод без проблем.
PowerShell в Windows 10 включает четыре политики выполнения:
- Restricted – останавливает выполнение скрипта.
- RemoteSigned – запускает скрипты, созданные на устройстве. Однако, сценарии, созданные на другом компьютере, не будут запускаться, если они не содержат подписи доверенного издателя.
- AllSigned – все скрипты будут работать до тех пор, пока они подписаны надежным издателем.
- Unrestricted запускает любой скрипт без каких-либо ограничений.
В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.
7 скриптов для Windows, которые помогут сэкономить время

Если вы только недавно встали на путь программирования и ещё даже не пробовали поиграться с установленной операционной системой, то манипулирование с помощью скриптов может вызвать резонные вопросы необходимости и удобства. Однако, даже если опустить тот простой факт, что они помогают лучше понять, как функционирует ОС, в будущем при создании приложений, исполнение сценариев может оказаться крайне полезным навыком.

Для исполнения следующих скриптов мы обратимся к PowerShell. Любой системный администратор (по профессии или в душе) знает его возможности и периодически пользуется, для всех остальных это просто интерфейс командной строки или иностранное слово. На популярных ресурсах вы можете найти уйму идей, как использовать PowerShell для развлечения и дела, здесь же мы рассмотрим лишь простые скрипты, которые помогут войти в курс дела.
Выключение и перезапуск
Итак, самая простая операция выключения вашего компьютера. Открываем блокнот, прописываем:
Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.
Удаляем ненужное
В различных сборках, предустановленных на компьютер или ноутбук, вы можете наткнуться на массу абсолютно ненужных пакетов приложений. Удалить их с помощью скрипта проще простого:
get-appxpackage -name *APPNAME* | remove-appxpackage
Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.
Управляем процессами
Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:
или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):
Но это можно сделать в диспетчере задач, а вот действительно полезным может оказаться создание файла, который по клику закрывал бы все процессы с повышенным потреблением ресурсов (браузеры, антивирусы и пр.). Для этого воспользуйтесь командой Stop-Service:
Stop-Service -Name *ANTIVIRUS*
Stop-Service -Name *BROWSER*
Названия для замены указаны в * *.
Переименовываем группу файлов
Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день. Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:
$path = «$comp\desktop\journey\russia»
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter |
rename-item -newname
В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить. Если данный скрипт опять сохранить в качестве исполняемого файла, то подобные однотипные операции будут отнимать у вас всего несколько секунд времени.
Ищем файлы
Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:
Или чуть более сложный пример, когда поиск будет производиться ещё и в подпапках:
Get-ChildItem C:\Windows\* -Include *.log -Recurse -Force
Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.
Справка
Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:
Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:
Get-Help -Name *CMDLET*
Где вместо *CMDLET* вставьте любую интересующую команду.

Находим данные
Теперь перейдём к простым скриптам, описанным чуть более сложными командами. Например, с помощью PowerShell вы можете выудить почти всю информацию о железе и комплектующих. Как вариант, вот скрипт для оценки уровня заряда аккумулятора:
Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)
Архитектура процессора удалённого компьютера:
[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’
).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40
).Invoke($null, @())
Иногда важной задачей бывает проверка прав администратора у текущего пользователя. Вот простой способ на PowerShell:
[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(
‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())
На этом пока остановимся. Как вы наверное убедились, PowerShell не самый сложный, но очень полезный инструмент, который способен выполнять, как простейшие операции, так и достаточно сложные. Однако PowerShell не единственный инструмент для создания скриптов для Windows. Но об этом в следующий раз.
about_Scripts
Скрипт — это обычный текстовый файл, содержащий одну или несколько команд PowerShell. Скрипты PowerShell имеют .ps1 расширение файла.
Выполнение скрипта очень похоже на выполнение командлета. Введите путь и имя файла скрипта и используете параметры для отправки данных и задания параметров. Скрипты можно запускать на компьютере или в удаленном сеансе на другом компьютере.
Написание скрипта сохраняет команду для последующего использования и упрощает совместное использование с другими пользователями. Самое главное, это позволяет выполнять команды, просто введя путь к скрипту и имя файла. Скрипты могут быть как простые, как одна команда в файле или как сложная программа.
Скрипты имеют дополнительные функции, такие как #Requires специальный комментарий, использование параметров, поддержка разделов данных и цифровая подпись для обеспечения безопасности. Вы также можете написать разделы справки для сценариев и для любых функций в скрипте.
Запуск скрипта
Прежде чем запускать скрипт в Windows, необходимо изменить политику выполнения PowerShell по умолчанию. Политика выполнения не применяется к PowerShell, работающей на платформах, отличных от Windows.
Политика Restricted выполнения по умолчанию предотвращает выполнение всех скриптов, включая скрипты, которые записываются на локальном компьютере. Дополнительную информацию см. в разделе about_Execution_Policies.
Политика выполнения сохраняется в реестре, поэтому ее необходимо изменить только один раз на каждом компьютере.
Чтобы изменить политику выполнения, используйте следующую процедуру.
В командной строке введите:
Set-ExecutionPolicy AllSigned
Set-ExecutionPolicy RemoteSigned
Изменение действует немедленно.
Чтобы запустить скрипт, введите полное имя и полный путь к файлу скрипта.
Например, для запуска сценария Get-ServiceLog.ps1 в каталоге C:\Scripts введите:
C:\Scripts\Get-ServiceLog.ps1
Чтобы запустить скрипт в текущем каталоге, введите путь к текущему каталогу или используйте точку для представления текущего каталога, а затем путь обратной косой черты ( .\ ).
Например, чтобы запустить скрипт ServicesLog.ps1 в локальном каталоге, введите следующее:
.\Get-ServiceLog.ps1
Если скрипт имеет параметры, введите параметры и значения параметров после имени файла скрипта.
Например, следующая команда использует параметр ServiceName скрипта Get-ServiceLog для запроса журнала действий службы WinRM.
.\Get-ServiceLog.ps1 -ServiceName WinRM
В качестве функции безопасности PowerShell не запускает скрипты при двойном щелчке значка скрипта в проводник или при вводе имени скрипта без полного пути, даже если сценарий находится в текущем каталоге. Дополнительные сведения о выполнении команд и сценариев в PowerShell см. в about_Command_Precedence .
Запуск с помощью PowerShell
Начиная с PowerShell 3.0, можно запускать сценарии из проводник.
Чтобы использовать функцию «Запуск с помощью PowerShell», выполните следующие действия.
Запустите проводник, щелкните правой кнопкой мыши имя файла скрипта и выберите команду «Выполнить с помощью PowerShell».
Функция «Запуск с помощью PowerShell» предназначена для выполнения скриптов, которые не имеют необходимых параметров и не возвращают выходные данные в командную строку.
Дополнительные сведения см. в статье about_Run_With_PowerShell.
Выполнение скриптов на других компьютерах
Чтобы запустить скрипт на одном или нескольких удаленных компьютерах, используйте параметр FilePath командлета Invoke-Command .
Введите путь и имя файла скрипта в качестве значения параметра FilePath . Скрипт должен находиться на локальном компьютере или в каталоге, к которому локальный компьютер может получить доступ.
Следующая команда запускает Get-ServiceLog.ps1 скрипт на удаленных компьютерах с именем Server01 и Server02.
Invoke-Command -ComputerName Server01,Server02 -FilePath ` C:\Scripts\Get-ServiceLog.ps1
Получение справки по скриптам
Командлет Get-Help получает разделы справки для скриптов, а также командлетов и других типов команд. Чтобы получить раздел справки для скрипта, введите Get-Help путь и имя файла скрипта. Если путь к скрипту находится в Path переменной среды, можно опустить путь.
Например, чтобы получить справку по скрипту ServicesLog.ps1, введите следующее:
get-help C:\admin\scripts\ServicesLog.ps1
Создание скрипта
Скрипт может содержать любые допустимые команды PowerShell, включая отдельные команды, команды, использующие конвейер, функции и структуры управления, такие как операторы If и циклы For.
Чтобы написать скрипт, откройте новый файл в текстовом редакторе, введите команды и сохраните их в файле с допустимым именем файла с расширением .ps1 файла.
Следующий пример — это простой сценарий, который получает службы, работающие в текущей системе, и сохраняет их в файл журнала. Имя файла журнала создается с текущей даты.
$date = (get-date).dayofyear get-service | out-file "$date.log"
Чтобы создать этот скрипт, откройте текстовый редактор или редактор скриптов, введите эти команды и сохраните их в файле с именем ServiceLog.ps1 .
Параметры в скриптах
Чтобы определить параметры в скрипте, используйте инструкцию Param. Оператор Param должен быть первым оператором в скрипте, за исключением комментариев и любых #Require инструкций.
Параметры скрипта работают как параметры функции. Значения параметров доступны для всех команд в скрипте. Все функции параметров функции, включая атрибут «Параметр» и его именованные аргументы, также допустимы в скриптах.
При запуске скрипта пользователи скрипта введите параметры после имени скрипта.
В следующем примере показан Test-Remote.ps1 сценарий с параметром ComputerName . Обе функции скрипта могут получить доступ к значению параметра ComputerName .
param ($ComputerName = $(throw "ComputerName parameter is required.")) function CanPing < $error.clear() $tmp = test-connection $computername -erroraction SilentlyContinue if (!$?) else > function CanRemote < $s = new-pssession $computername -erroraction SilentlyContinue if ($s -is [System.Management.Automation.Runspaces.PSSession]) else > if (CanPing $computername)
Чтобы запустить этот скрипт, введите имя параметра после имени скрипта. Например:
C:\PS> .\test-remote.ps1 -computername Server01 Ping succeeded: Server01 Remote test failed: Server01
Дополнительные сведения об инструкции Param и параметрах функции см. в about_Functions и about_Functions_Advanced_Parameters.
Справка по написанию скриптов
Вы можете написать раздел справки для скрипта с помощью одного из двух следующих методов:
- Справка на основе комментариев для сценариев Создайте раздел справки с помощью специальных ключевое слово в комментариях. Чтобы создать справку на основе комментариев для скрипта, комментарии должны размещаться в начале или конце файла скрипта. Дополнительные сведения о справке на основе комментариев см. в about_Comment_Based_Help .
- Справка на основе XML для сценариев Создайте раздел справки на основе XML, например тип, который обычно создается для командлетов. Справка на основе XML требуется, если вы переводите разделы справки на несколько языков.
Чтобы связать скрипт с разделом справки на основе XML, используйте раздел справки. Ключевое слово примечания внешней справкиHelp. Дополнительные сведения о ключевое слово ExternalHelp см. в about_Comment_Based_Help . Дополнительные сведения о справке на основе XML см. в статье «Создание справки по командлетам».
Возврат значения выхода
По умолчанию скрипты не возвращают состояние выхода при завершении скрипта. Для возврата кода выхода из скрипта необходимо использовать exit инструкцию. По умолчанию exit инструкция возвращается 0 . Можно указать числовое значение для возврата другого состояния выхода. Код выхода, отличный от нуля, обычно сигнализирует о сбое.
В Windows любое число между [int]::MinValue и [int]::MaxValue разрешено.
В Unix разрешены только положительные числа между [byte]::MinValue (0) и [byte]::MaxValue (255). Отрицательное число в диапазоне -1 -255 через автоматически преобразуется в положительное число путем добавления 256. Например, -2 преобразуется 254 в .
В PowerShell exit инструкция задает значение переменной $LASTEXITCODE . В командной оболочке Windows (cmd.exe) инструкция выхода задает значение переменной %ERRORLEVEL% среды.
Любой аргумент, который является нечисленным или вне диапазона для конкретной платформы, преобразуется в значение 0 .
Скрипт область и точечный набор элементов
Каждый скрипт выполняется в собственных область. Функции, переменные, псевдонимы и диски, созданные в скрипте, существуют только в область скрипта. Доступ к этим элементам или их значениям нельзя получить в область, в которой выполняется скрипт.
Чтобы запустить скрипт в другой область, можно указать область, например Global или Local, или указать исходный скрипт.
Функция создания точек позволяет запускать скрипт в текущей область вместо область скрипта. При выполнении скрипта, который является точкой источника, команды в скрипте выполняются так же, как если бы вы ввели их в командной строке. Функции, переменные, псевдонимы и диски, создаваемые скриптом, создаются в область, в которой вы работаете. После выполнения скрипта можно использовать созданные элементы и получить доступ к их значениям в сеансе.
Чтобы указать исходный скрипт, введите точку (.) и пробел перед путем скрипта.
. C:\scripts\UtilityFunctions.ps1
. .\UtilityFunctions.ps1
После выполнения скрипта UtilityFunctions.ps1 функции и переменные, создаваемые скриптом, добавляются в текущую область.
Например, UtilityFunctions.ps1 скрипт создает New-Profile функцию и $ProfileName переменную.
#In UtilityFunctions.ps1 function New-Profile < Write-Host "Running New-Profile function" $profileName = split-path $profile -leaf if (test-path $profile) else >
При запуске скрипта UtilityFunctions.ps1 в собственном скрипте область New-Profile функция и $ProfileName переменная существуют только во время выполнения скрипта. Когда скрипт завершает работу, функция и переменная удаляются, как показано в следующем примере.
C:\PS> .\UtilityFunctions.ps1 C:\PS> New-Profile The term 'new-profile' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again. At line:1 char:12 + new-profile $profileName C:\PS>
При точке источника скрипта и его запуске скрипт создает New-Profile функцию и $ProfileName переменную в сеансе в область. После выполнения скрипта можно использовать New-Profile функцию в сеансе, как показано в следующем примере.
C:\PS> . .\UtilityFunctions.ps1 C:\PS> New-Profile Directory: C:\Users\juneb\Documents\WindowsPowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 1/14/2009 3:08 PM 0 Microsoft.PowerShellISE_profile.ps1 C:\PS> $profileName Microsoft.PowerShellISE_profile.ps1
Дополнительные сведения о область см. в about_Scopes .
Скрипты в модулях
Модуль — это набор связанных ресурсов PowerShell, которые можно распределить как единицу. Модули можно использовать для упорядочивания скриптов, функций и других ресурсов. Вы также можете использовать модули для распространения кода другим пользователям и получения кода из доверенных источников.
Вы можете включить скрипты в модули или создать модуль скрипта, который является модулем, состоящим полностью или главным образом из скрипта и вспомогательных ресурсов. Модуль скрипта — это просто скрипт с расширением PSM1-файла.
Дополнительные сведения о модулях см. в about_Modules .
Другие функции скрипта
PowerShell имеет множество полезных функций, которые можно использовать в сценариях.
- #Requires — Инструкцию #Requires можно использовать для предотвращения запуска скрипта без указанных модулей или оснастки и указанной версии PowerShell. Дополнительные сведения см. в about_Requires .
- $PSCommandPath — содержит полный путь и имя выполняемого скрипта. Этот параметр действителен во всех скриптах. Эта автоматическая переменная представлена в PowerShell 3.0.
- $PSScriptRoot — содержит каталог, из которого выполняется скрипт. В PowerShell 2.0 эта переменная действительна только в модулях скриптов ( .psm1 ). Начиная с PowerShell 3.0, он действителен во всех сценариях.
- $MyInvocation — Автоматическая $MyInvocation переменная содержит сведения о текущем скрипте, включая сведения о том, как он был запущен или «вызван». Эту переменную и ее свойства можно использовать для получения сведений о скрипте во время его выполнения. Например, объект $MyInvocation . Переменная MyCommand.Path содержит путь и имя файла скрипта. $MyInvocation . Строка содержит команду, которая запустила скрипт, включая все параметры и значения. Начиная с PowerShell 3.0, имеет два новых свойства, $MyInvocation которые предоставляют сведения о скрипте, который вызвал или вызвал текущий скрипт. Значения этих свойств заполняются только в том случае, если вызывающий или вызывающий объект является скриптом.
- PSCommandPath содержит полный путь и имя скрипта, который вызвал или вызвал текущий скрипт.
- PSScriptRoot содержит каталог скрипта, который вызвал или вызвал текущий скрипт.
$PSCommandPath В отличие от и автоматических переменных, которые содержат сведения о текущем скрипте, свойства $MyInvocation PSCommandPath и $PSScriptRoot PSScriptRoot переменной содержат сведения о скрипте, который называется текущим скриптом.
См. также
- about_Command_Precedence
- about_Comment_Based_Help
- about_Execution_Policies
- about_Functions
- about_Modules
- about_Profiles
- about_Requires
- about_Run_With_PowerShell
- about_Scopes
- about_Script_Blocks
- about_Signing
- Invoke-Command
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
PowerShell is an open source project. Select a link to provide feedback:
Обратная связь
Отправить и просмотреть отзыв по
