about_Pwsh

Krátký popis

Vysvětluje, jak používat pwsh rozhraní ine příkazu-l. Zobrazí parametry ine příkazu-la popisuje syntaxi.

Dlouhý popis

Informace o možnostech příkazu-lpro Windows PowerShell 5.1 najdete v tématu about_PowerShell_exe.

Syntaxe

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

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

Parametry

Všechny parametry nerozlišují malá-ia velká písmena.

-File | -f

Pokud je -hodnota , text příkazu se načte ze standardního File vstupu. Spuštění pwsh -File - bez přesměrovaného standardního vstupu spustí běžnou relaci. To je stejné jako nezadání parametru File vůbec.

Toto je výchozí parametr, pokud nejsou k dispozici žádné parametry, ale hodnoty jsou přítomné na příkazovém řádku. Zadaný skript se spustí v místním oboru ("dot-sourced") nové relace, aby funkce a proměnné, které skript vytvoří, byly k dispozici v nové relaci. Zadejte cestu k souboru skriptu a všechny parametry. Soubor musí být posledním parametrem příkazu, protože všechny znaky zadané za názvem parametru File jsou interpretovány jako cesta k souboru skriptu následované parametry skriptu.

Parametry přepínače skriptu jsou obvykle zahrnuty nebo vynechány. Například následující příkaz používá parametr All souboru skriptu Get-Script.ps1: -File .\Get-Script.ps1 -All

Ve výjimečných případech může být nutné zadat logickou hodnotu parametru switch. Chcete-li poskytnout logickou hodnotu parametru přepínače v hodnotě parametru File , použijte parametr normálně následovaný dvojtečka a logickou hodnotou, například následující: -File .\Get-Script.ps1 -All:$False.

Parametry předané skriptu se předávají jako literální řetězce po interpretaci aktuálním prostředím. Pokud jste například in cmd.exe a chcete předat hodnotu proměnné prostředí, použijte cmd.exe syntaxi: pwsh -File .\test.ps1 -TestParam %windir%

Naproti tomu spuštění pwsh -File .\test.ps1 -TestParam $env:windir ve výsledku ve cmd.exe skriptu přijímá literálový řetězec $env:windir , protože pro aktuální cmd.exe prostředí nemá žádný zvláštní význam. Styl $env:windir odkazu na proměnnou prostředí lze použít uvnitř parametru Command , protože je interpretován jako kód PowerShellu.

Podobně pokud chcete spustit stejný příkaz ze skriptu Batch, místo .\%~dp0 nebo $PSScriptRoot k reprezentaci aktuálního spouštěcího adresáře: pwsh -File %~dp0test.ps1 -TestParam %windir%. Pokud jste místo toho použili .\test.ps1, PowerShell vyvolá chybu, protože nemůže najít cestu literálu. .\test.ps1

Poznámka:

Parametr File nemůže podporovat skripty pomocí parametru, který očekává pole hodnot argumentů. Toto je bohužel omezení způsobu, jakým nativní příkaz získá hodnoty argumentů. Když zavoláte nativní spustitelný soubor (například powershell nebo pwsh), neví, co dělat s polem, takže se předá jako řetězec.

Když se soubor skriptu ukončí příkazem exit , ukončovací kód procesu se nastaví na číselný argument použitý s příkazem exit . Při normálním ukončení je ukončovací kód vždy 0.

Další informace najdete v about_Automatic_Variables$LASTEXITCODE.

-CommandPodobně jako v případě, že dojde k chybě ukončování skriptu, je ukončovací kód nastaven na 1. Nicméně, na rozdíl od -Command, když je spuštění přerušeno ctrl +C ukončovací kód je .0

Poznámka:

Od PowerShellu 7.2 přijímá .ps1 parametr File pouze soubory ve Windows. Pokud je zadán jiný typ souboru, dojde k chybě. Toto chování je specifické pro Windows. Na jiných platformách se PowerShell pokusí spustit jiné typy souborů.

-Command | -c

Spustí zadané příkazy (a všechny parametry), jako kdyby byly zadány na příkazovém řádku PowerShellu, a poté se ukončí, pokud NoExit není zadaný parametr.

Hodnota Command může být -, blok skriptu nebo řetězec. Pokud je -hodnota Command , text příkazu se načte ze standardního vstupu.

Parametr Command přijímá pouze blok skriptu ke spuštění, pokud dokáže rozpoznat hodnotu předanou příkazu jako typ ScriptBlock . To je možné jenom v případě, že je spuštěný pwsh z jiného hostitele PowerShellu. Typ ScriptBlock může být obsažen v existující proměnné, vrácený z výrazu nebo parsován hostitelem PowerShellu jako literálový blok skriptu uzavřený ve složených závorkách ({}), před předáním do pwsh.

pwsh -Command {Get-WinEvent -LogName security}

V cmd.exeneexistuje žádná taková věc, jako je blok skriptu (nebo typ ScriptBlock ), takže hodnota předaná do Command je vždy řetězec. Blok skriptu můžete napsat uvnitř řetězce, ale místo jeho spuštění se chová přesně tak, jako kdybyste ho zadali v typickém příkazovém řádku PowerShellu, vytiskněte obsah skriptu, který vám zablokuje.

Řetězec předaný příkazu se stále spouští jako kód PowerShellu, takže při spuštění závorky cmd.exebloku skriptu se často nevyžadují na prvním místě. Pokud chcete spustit vložený blok skriptu definovaný uvnitř řetězce, můžete použít operátor& volání:

pwsh -Command "& {Get-WinEvent -LogName security}"

Pokud je hodnota Command řetězec, musí být příkaz posledním parametrem pro pwsh, protože všechny argumenty, které následují, jsou interpretovány jako součást příkazu ke spuštění.

Při zavolání z existující relace PowerShellu se výsledky vrátí do nadřazeného prostředí jako deserializované objekty XML, nikoli živé objekty. U jiných prostředí se výsledky vrátí jako řetězce.

Pokud je -hodnota Command , text příkazu se načte ze standardního vstupu. Standardní vstup je nutné přesměrovat při použití parametru Command se standardním vstupem. Příklad:

@'
"in"

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

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

Tento příklad vytvoří následující výstup:

in
hi there
out

Ukončovací kód procesu je určen stavem posledního (spuštěného) příkazu v bloku skriptu. Ukončovací kód je 0 , kdy $? je $true nebo 1 kdy $? je $false. Pokud je posledním příkazem externí program nebo skript PowerShellu, který explicitně nastaví ukončovací kód jiný než 0 nebo 1, tento ukončovací kód se převede na 1 ukončovací kód procesu. Pokud chcete zachovat konkrétní ukončovací kód, přidejte exit $LASTEXITCODE ho do příkazového řetězce nebo bloku skriptu.

Další informace najdete v about_Automatic_Variables$LASTEXITCODE.

Podobně se hodnota 1 vrátí, když dojde k chybě ukončování skriptu (runspace-ukončování), například throw-ErrorAction Stopnebo , nebo při přerušení spuštění pomocí Ctrl+C.

-ConfigurationName | -config

Určuje koncový bod konfigurace, ve kterém je spuštěný PowerShell. Může se jednat o libovolný koncový bod zaregistrovaný na místním počítači, včetně výchozích koncových bodů vzdálené komunikace PowerShellu nebo vlastního koncového bodu s konkrétními funkcemi role uživatele.

Příklad: pwsh -ConfigurationName AdminRoles

-ConfigurationFile

Určuje cestu k souboru konfigurace relace (.pssc). Konfigurace obsažená v konfiguračním souboru se použije v relaci PowerShellu.

Příklad: pwsh -ConfigurationFile "C:\ProgramData\PowerShell\MyConfig.pssc"

-CustomPipeName

Určuje název, který se má použít pro další server IPC (pojmenovaný kanál) používaný pro ladění a další komunikaci mezi procesy. Nabízí předvídatelný mechanismus pro připojení k jiným instancím PowerShellu. Obvykle se používá s parametrem CustomPipeName na .Enter-PSHostProcess

Tento parametr byl představen v PowerShellu 6.2.

Příklad:

# PowerShell instance 1
pwsh -CustomPipeName mydebugpipe
# PowerShell instance 2
Enter-PSHostProcess -CustomPipeName mydebugpipe

-EncodedCommand | -e | -ec

Přijímá nkódovanou verzi řetězce Base64-epříkazu. Pomocí tohoto parametru odešlete příkazy do PowerShellu, které vyžadují složité vnořené uvozování. Reprezentace Base64 musí být řetězec s kódováním UTF-16LE.

Příklad:

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

-ExecutionPolicy | -ex | -ep

Nastaví výchozí zásadu spouštění pro aktuální relaci a uloží ji do $env:PSExecutionPolicyPreference proměnné prostředí. Tento parametr nemění trvale nakonfigurované zásady spouštění.

Tento parametr platí jenom pro počítače s Windows. Na jiných platformách než Windows se parametr a zadaná hodnota ignorují.

-InputFormat | -inp | -if

Popisuje formát dat odesílaných do PowerShellu. Platné hodnoty jsou Text (textové řetězce) nebo XML (serializovaný formát CLIXML).

-Interactive | -i

Prezentujte uživateli interaktivní výzvu. Inverzní funkce pro parametr NonInteractive.

-Login | -l

V Linuxu a macOS spustí PowerShell jako přihlašovací prostředí pomocí příkazu /bin/sh ke spouštění přihlašovacích profilů, jako jsou /etc/profile a ~/.profile. Ve Windows tento přepínač nedělá nic.

Důležité

Tento parametr musí nejprve spustit PowerShell jako přihlašovací prostředí. Tento parametr je ignorován, pokud je předán v jiné pozici.

pwsh Nastavení jako přihlašovacího prostředí v operačních systémech systém UNIX-l ike:

  • Ověřte, že je v seznamu uvedená úplná absolutní cesta.pwsh/etc/shells

    • Tato cesta je obvykle něco jako /usr/bin/pwsh v Linuxu nebo /usr/local/bin/pwsh v macOS.
    • S některými metodami instalace se tato položka přidá automaticky v době instalace.
    • Pokud pwsh není k dispozici /etc/shells, pomocí editoru připojte cestu k pwsh poslednímu řádku. K úpravám se vyžadují zvýšená oprávnění.
  • Pomocí nástroje chsh nastavte prostředí aktuálního uživatele napwsh:

    chsh -s /usr/bin/pwsh
    

Upozorňující

Nastavenípwsh, protože přihlašovací prostředí se v současné době nepodporuje v Subsystém Windows pro Linux (WSL) a pokus o nastavení pwsh jako přihlašovací prostředí může vést k tomu, že nejde spustit WSL interaktivně.

-MTA

Spusťte PowerShell pomocí vícevláknového apartmánu. Tento přepínač je k dispozici pouze ve Windows. Použití tohoto parametru na platformách jiných než Windows způsobí chybu.

-NoExit | -noe

Po spuštění spouštěcíchpříkazůch

Příklad: pwsh -NoExit -Command Get-Date

-NoLogo | -nol

Skryje banner při spuštění interaktivních relací.

-NonInteractive | -noni

Tento přepínač slouží k vytváření relací, které by neměly vyžadovat uživatelský vstup. To je užitečné pro skripty, které běží v naplánovaných úlohách nebo kanálech CI/CD. Všechny pokusy o použití interaktivních funkcí, jako Read-Host jsou výzvy k potvrzení nebo výzvy k potvrzení, způsobí, že se místo předsazení zobrazí ukončení příkazů.

-NoProfile | -nop

Nenačítá profily PowerShellu.

-NoProfileLoadTime

Skryje text doby načtení profilu PowerShellu zobrazený při spuštění, když doba načítání přesahuje 500 milisekund.

-OutputFormat | -o | -of

Určuje formátování výstupu z PowerShellu. Platné hodnoty jsou Text (textové řetězce) nebo XML (serializovaný formát CLIXML).

Příklad: pwsh -o XML -c Get-Date

Při zavolání v relaci PowerShellu získáte deserializované objekty jako výstup spíše prosté řetězce. Při zavolání z jiných prostředí je výstup řetězcová data formátovaná jako text CLIXML.

-SettingsFile | -settings

Přepíše soubor nastavení integrovaného vývojového prostředí systému-wpowershell.config.json pro relaci. Ve výchozím nastavení se nastavení integrovaného vývojového powershell.config.json$PSHOME prostředí systému-wnačítá z adresáře.

Všimněte si, že tato nastavení koncový bod určený argumentem -ConfigurationName nepoužívá.

Příklad: pwsh -SettingsFile c:\myproject\powershell.config.json

-SSHServerMode | -sshs

Používá se v sshd_config pro spuštění PowerShellu jako subsystému SSH. Není určená ani podporovaná pro žádné jiné použití.

-STA

Spusťte PowerShell pomocí apartmánu s jedním vláknem. Tato možnost je výchozí. Tento přepínač je dostupný jenom na platformě Windows. Použití tohoto parametru na platformách jiných než Windows způsobí chybu.

-Version | -v

Zobrazí verzi PowerShellu. Další parametry se ignorují.

-WindowStyle | -w

Nastaví styl okna relace. Platné hodnoty jsou Normální, Minimalizované, Maximalizované a Skryté. Tento parametr platí jenom pro Windows. Použití tohoto parametru na platformách jiných než Windows způsobí chybu.

-WorkingDirectory | -wd | -wO

Nastaví počáteční pracovní adresář spuštěním při spuštění. Podporuje se jakákoli platná cesta k souboru PowerShellu.

Pokud chcete spustit PowerShell v domovském adresáři, použijte: pwsh -WorkingDirectory ~

-Help, -?, /?

Zobrazí nápovědu pro pwsh. Pokud v PowerShellu píšete příkaz pwsh, předpište parametry příkazu spojovníkem (-), nikoli lomítkem (/).