Что такое PWSH.EXE? Список синтаксиса PWSH, который вы можете использовать

PowerShell — один из самых мощных инструментов сценариев, созданных Microsoft . В этом посте мы расскажем, что такое PWSH.exe и список важных синтаксисов PWSH(PWSH syntax) . Я уверен, что многие из пользователей использовали Windows PowerShell , но теперь PWSH — это кроссплатформенный инструмент для написания сценариев, который работает в Windows , macOS и Linux . Однако он не поддерживается в WSL , т . е. в подсистеме Windows(Windows Subsystem) в Linux , и попытка установить PWSH в качестве оболочки входа в систему приведет к нестабильной работе WSL(WSL) .

Что такое PWSH.EXE?

ПВШ

Прежде чем мы начнем, давайте проясним одну деталь. PWSH.EXE — это новое имя PowerShell . Начиная с версии 6 он называется PowerShell Core . Ранее он назывался powershell.exe , который вы наверняка видели установленным в Windows (версия 5.1). Неудивительно, что каждый раз, когда вы запускаете PowerShell в Windows , вы получаете сообщение:

“Try the new cross-platform PowerShell https://aka.ms/pscore6.”

Вы можете прочитать о разнице между PowerShell и PowerShell Core.(difference between PowerShell and PowerShell Core.)

Сегодня PowerShell достиг версии 7(PowerShell has reached version 7) , что является серьезным изменением по сравнению с версией 6 и использует .NET Core 3 вместо .Net Framework . Если вы хотите попробовать, узнайте, как установить PowerShell 7.0 в Windows 10.(how to install PowerShell 7.0 on Windows 10.)

Важный синтаксис PWSH

-File | -f: Если у вас есть команды в файле сценария, вы можете использовать его в качестве входных данных. Вы также можете указать аргументы для файлов, когда это применимо.

pwsh -File .\test.ps1 -TestParam $env:windir

-Command | -c : Используйте это для выполнения команды или ScriptBlock . ScriptBlock — это набор функций, заключенных в {}

pwsh -Command {Get-WinEvent -LogName security}

или

@'
"in"

"hi" |
% { "$_ there" }

"out"
'@ | powershell -NoProfile -Command -

-EncodedCommand | -e | -ec : используйте это, когда необходимо использовать сложные кавычки или фигурные скобки.

$command = 'dir "c:\program files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -encodedcommand $encodedCommand

-Login | -l: в Linux(Linux) и macOS запускает PowerShell в качестве оболочки входа, используя /bin/sh для выполнения профилей входа, таких как /etc/profile и ~/.profile. Это не применимо к Windows .

Вам нужно будет проверить абсолютный путь, указанный в /etc/shells. Вы можете использовать  утилиту chsh , чтобы установить оболочку вашего текущего пользователя на pwsh.

chsh -s /usr/bin/pwsh

-Файл настроек | -настройки

Если вы хотите перезаписать глобальные настройки локальными настройками проекта, вы можете указать файл настроек с помощью этой опции. Общесистемные настройки доступны в файле powershell.config.json.

pwsh -SettingsFile c:\myproject\powershell.config.json

Полный список синтаксиса PWSH

pwsh[.exe]
[[-File] <filePath> [args]]
[-Command { - | <script-block> [-args <arg-array>]
| <string> [<CommandParameters>] } ]
[-ConfigurationName <string>]
[-CustomPipeName <string>]
[-EncodedCommand <Base64EncodedCommand>]
[-ExecutionPolicy <ExecutionPolicy>]
[-InputFormat {Text | XML}]
[-Interactive]
[-Login]
[-MTA]
[-NoExit]
[-NoLogo]
[-NonInteractive]
[-NoProfile]
[-OutputFormat {Text | XML}]
[-SettingsFile <SettingsFilePath>]
[-STA]
[-Version]
[-WindowStyle <style>]
[-WorkingDirectory <directoryPath>]

pwsh[.exe] -h | -Help | -? | /?

Если вам нужна дополнительная информация, вы можете посетить docs.microsoft.com.


Related posts