Test-Path slouží k otestování existence cesty. Nejčastěji se používá pro test existence určitého souboru.
PS C:\> Test-Path C:\CONFIG.SYS
True
PS C:\> Test-Path $PROFILE
True
PS C:\> Test-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
True
PS C:\> Test-Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion
False
True
PS C:\> Test-Path $PROFILE
True
PS C:\> Test-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
True
PS C:\> Test-Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion
False
V posledním případě je vidět, že práci s registry nám trochu komplikuje přístup PowerShellu k provideru registru. Funguje na úrovni klíčů a nikoli hodnot.
Convert-Path převede např. proměnné prostředí na reálnou cestu. Čili:
PS C:\> Convert-Path ~
C:\Documents and Settings\moravec
PS C:\> Convert-Path $env:TEMP
C:\WINDOWS\TEMP
C:\Documents and Settings\moravec
PS C:\> Convert-Path $env:TEMP
C:\WINDOWS\TEMP
Split-Path slouží k rozdělění cesty na její části, zjednodušeně řečeno na adresář a soubor. Bez uvedení parametrů vrátí rodičovský adresář.
PS C:\> Split-Path $env:temp
C:\WINDOWS
C:\WINDOWS
Pokud chcete naopak poslední část cesty, použijte parametr Leaf.
PS C:\> Split-Path $env:temp -Leaf
TEMP
PS C:\> Split-Path $PROFILE -Leaf
Microsoft.PowerShell_profile.ps1
TEMP
PS C:\> Split-Path $PROFILE -Leaf
Microsoft.PowerShell_profile.ps1
Chcete-li získat root testované cesty použijte parametr Qualifier (případně NoQualifier, pokud chcete získat cestu bez rootu).
PS C:\> Split-Path $PROFILE -Qualifier
C:
PS C:\> Split-Path $PROFILE -NoQualifier
\Documents and Settings\moravec\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS C:\> Split-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Qualifier
HKLM:
C:
PS C:\> Split-Path $PROFILE -NoQualifier
\Documents and Settings\moravec\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS C:\> Split-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Qualifier
HKLM:
Resolve-Path se používá v případě, že chceme získat cestu zapsanou zástupnými znaky. Porovnejte následující výstupy:
PS C:\> Resolve-Path ~
Path
----
C:\Documents and Settings\moravec
PS C:\> Convert-Path ~
C:\Documents and Settings\moravec
Path
----
C:\Documents and Settings\moravec
PS C:\> Convert-Path ~
C:\Documents and Settings\moravec
Na první pohled je vidět, že výstupem Resolve-Path bude asi něco zajímavějšího než jen čistý text. Je to tak - Convert-Path vrací řetězec, Resolve-Path naproti tomu vrací objekt typu System.Management.Automation.PathInfo. Tento objekt má několik vlastností.
PS C:\> Resolve-Path ~ | fl *
Drive : C
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\Documents and Settings\moravec
Path : C:\Documents and Settings\moravec
Drive : C
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\Documents and Settings\moravec
Path : C:\Documents and Settings\moravec
Join-Path je posledním z "cestovních" příkazů. Používá se k tvorbě cesty. Chcete-li v adresáři, kde je uložen profil, vytvořit adresář pro vaše skripty, je jednou z cest následující příkaz:
PS C:\> mkdir (join-path (split-path $profile) \skripty\)
Žádné komentáře:
Okomentovat