2015-07-19 11 views
5

我想在PowerShell中運行Test-Path這個註冊表路徑,但它包含一個星號,它在註冊表中有效,但不在Windows路徑中。將帶有星號的註冊表鍵傳遞給測試路徑

的問題是,當我通過它,Test-Path將星號作爲通配符,所以這需要一個很長很長的時間,因爲它會檢查的Classes的所有子路徑和不喜歡什麼,我想測試什麼無論如何。

有沒有什麼辦法可以正確傳遞星號?有些逃生機制?

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

回答

6

使用-LiteralPath參數,以防止globbing/wildcard matching

-LiteralPath <字符串[] >

指定要被測試的通路。與Path不同,LiteralPath參數的值完全按照鍵入的方式使用。沒有字符被解釋爲通配符。如果路徑包含轉義字符,請將其用單引號括起來。單引號會告訴Windows PowerShell不要將任何字符解釋爲轉義序列。

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

哈我剛纔那樣做了一分鐘,太遲了!謝謝 :) – joshcomley