停止*作为用户输入输入
问题描述:
我有一个脚本要求用户输入,然后将其用作变量来验证目录路径是否存在,但是当用户输入*时,验证会在失败时返回成功。停止*作为用户输入输入
输入是通过Read-Host完成的,代码示例如下。
$userinput = Read-Host -Prompt "Enter Value"
if(Test-Path -Path "c:\$userinput\") {"Valid"} else {"not valid"}
答
只是写@ PetSerAl的评论作为一个答案
-path
对待*作为外卡,这可能会导致成功。 解决方案是使用-LiteralPath
,它按字面处理路径。
$userinput = Read-Host -Prompt "Enter Value"
if(Test-Path -LiteralPath "c:\$userinput\")
{
"Valid"
}
else
{
"not valid"
}
'-Path' - >'-LiteralPath' – PetSerAl
谢谢,很简单,现在你已经提到它了 – Josh