停止*作为用户输入输入

问题描述:

我有一个脚本要求用户输入,然后将其用作变量来验证目录路径是否存在,但是当用户输入*时,验证会在失败时返回成功。停止*作为用户输入输入

输入是通过Read-Host完成的,代码示例如下。

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

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

+0

谢谢,很简单,现在你已经提到它了 – Josh

只是写@ PetSerAl的评论作为一个答案

-path对待*作为外卡,这可能会导致成功。 解决方案是使用-LiteralPath,它按字面处理路径。

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