gpt4 book ai didi

powershell - 做…直到-使用ValidPattern读取主机

转载 作者:行者123 更新时间:2023-12-03 00:55:58 29 4
gpt4 key购买 nike

我想创建一个检查特定日期格式的读取主机。此外,目标是检查用户输入是否正确,如果不正确,则提示应再次弹出。
当我刚接触编程时,发现了这段代码,这似乎很合适。我仍然在努力“直到”

    do
{
try {
[ValidatePattern("yyyyMMdd")]$Date = Read-Host -Prompt "Please input a valid date in format YYYYMMDD!"
} catch {}
} until ($?)
TBH,我不知道该怎么做($?)...我知道,直到需要将用户输入与有效模式“yyyyMMdd”进行比较,但我不知道该怎么做。
我尝试了几种组合但未成功...

最佳答案

[ValidatePattern()]属性不适合您的验证例程。
它以正则表达式模式作为参数,正则表达式仅涉及文本本身-它对日期格式一无所知,并且yyyyMMdd对正则表达式引擎没有特殊含义-您基本上是在要求Powershell验证输入的是文字值“yyyyMMdd”。
您可能要为此使用 DateTime.TryParseExact() :

$Date = [datetime]::MinValue
do
{
$DateStringInput = Read-Host -Prompt "Please input a valid date in format YYYYMMDD!"
} until ([datetime]::TryParseExact($DateStringInput.Trim(), 'yyyyMMdd', $null, 'None', [ref]$Date))
在循环内部,我们仅提示用户输入字符串,然后在 until条件语句中,让 DateTime.TryParseExact()解析给定指定格式的输入,并将其分配给 $Date变量,以确保在失败时再次循环。

关于powershell - 做…直到-使用ValidPattern读取主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63580855/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com