2017-02-11 108 views
0

我有一個腳本要求用戶輸入,然後將其用作變量來驗證目錄路徑是否存在,但是當用戶輸入*時,驗證會在失敗時返回成功。停止*作爲用戶輸入輸入

輸入是通過Read-Host完成的,代碼示例如下。

$userinput = Read-Host -Prompt "Enter Value" 
if(Test-Path -Path "c:\$userinput\") {"Valid"} else {"not valid"} 
+5

'-Path' - >'-LiteralPath' – PetSerAl

+0

謝謝,很簡單,現在你已經提到它了 – Josh

回答

0

只是寫@ PetSerAl的評論作爲一個答案

-path對待*作爲外卡,這可能會導致成功。 解決方案是使用-LiteralPath,它按字面處理路徑。

$userinput = Read-Host -Prompt "Enter Value" 
if(Test-Path -LiteralPath "c:\$userinput\") 
{ 
    "Valid" 
} 
else 
{ 
    "not valid" 
}