2015-07-19 14 views
5

Chcę uruchomić tę ścieżkę rejestru przez Test-Path w programie PowerShell, ale zawiera ona gwiazdkę, która jest poprawna w rejestrze, ale nie w ścieżkach systemu Windows.Przekazywanie klucza rejestru z gwiazdką do ścieżki testowej

Problem polega na tym, że gdy go przekazuję, Test-Path traktuje gwiazdkę jako dziką kartę, więc zajmuje to bardzo, bardzo długi czas, ponieważ sprawdza wszystkie ścieżki podrzędne Classes i nie jest niczym podobnym do tego, co chcę przetestować tak czy inaczej.

Czy mogę w jakiś sposób poprawnie przekazać tę gwiazdkę? Jakiś mechanizm ucieczki?

Write-Host "Begin" 
Test-Path "HKLM:\SOFTWARE\Classes\*\shell\Some shell extension" 
Write-Host "End" 

Odpowiedz

6

Użyj parametru -LiteralPath aby zapobiec globbing/wildcard matching.

-LiteralPath < ciąg [] >

określa drogę do testowania. W przeciwieństwie do Path, wartość parametru LiteralPath jest używana dokładnie tak, jak jest wpisana. Żadne postacie nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki specjalne, należy ją ująć w pojedyncze cudzysłowy. Pojedynczy cudzysłów oznacza, że ​​Windows PowerShell nie interpretuje żadnych znaków jako sekwencji unikowych.

Write-Host "Begin" 
Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\*\shell\Some shell extension" 
Write-Host "End" 
+0

Ha Właśnie opracowałem to za minutę za późno! Dziękuję Ci :) – joshcomley

Powiązane problemy