Spouštění skriptů odkazem

Pokud máme vytvořeny Powershell skripty a chceme mít možnost je rychle spouštět je možné udělat si pro tyto skripty odkazy např. na Ploše. Jak už zde bylo uvedeno není možné spouštět přímo soubory s příponou PS1 a proto musíme udělat odkaz trochu složitější.

Při vytvoření nového zástupce zadáme do položky cíl např. následující:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe c:\skript\skript.ps1

Pomocí takto vytvořeného zástupce pak můžeme spouštět skripty dvojklijkem z Plochy. Nicméně takto spuštěný skript proběhne a po ukončení skriptu je konzole Powershellu ukončena, což může být problém, když chcemenapř. vidět výsledek skriptu.

Aby se Powershell po provedení skriptu neukončil je možné přidat do příkazu v položce cíl v nasatvení zástupce parametr -NoExit, který zajistí, že konzole Powershellu zůstane po provedení skriptu spuštěna.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit c:\skript\skript.ps1

Můžeme také “pozastavit” ukončení konzole Powershell přímo příkazem ve skriptu. Na konec skriptu doplníme např. následující:

Write-Host "Stisknete libovolnou klavesu ..."

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

Tímto způsobem pak ukončíme konzolu Powershellu pouze stisknutím libovolné klávesy, což může být rychlejší, než v předchozím případě.

Výše uvedeného parametru -NoExit však můžeme můžeme využít i v případě, kdy budeme spouštět skripty pomocí místního menu. Pokud klikneme pravým tlačítkem na soubor Powershell skriptu v souborovém manažeru, bude v otevřeném menu možnost Run with Powershell. Způsob spuštění je v tomto případě zadáno v klíči registru

HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command

Standardní nastavení hodnoty Default (Výchozí) tohoto klíče registru je následující:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-file" "%1"

Abychom dosáhli požadovaného chování, tedy neukončení konzole Powershellu ihned po provedení skritpu, změníme hodnotu Default (Výchozí) na :

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoExit "-file" "%1"

Komentáře nejsou povoleny.