Thông số nhập của tập lệnh của tôi là ngày hoặc số. Dưới đây là một kịch bản mà hoạt động tốt, vì vậy bạn có thể thấy những gì tôi đang cố gắng để làm:Làm cách nào để kiểm tra xem chuỗi có chứa ngày không?
param($date = (Get-Date))
if ($date -match "^\d+$")
{
$date = (Get-Date).AddDays($date)
}
elseif ($date -as [DateTime])
{
$date = [DateTime]::Parse($date)
}
else
{
'You entered an invalid date'
exit 1
}
Dưới đây là nỗ lực trước đây của tôi rằng không công việc:
param($date = (Get-Date))
if ($date -as [DateTime])
{
$date = [DateTime]::Parse($date)
}
elseif ($date -match "^\d+$")
{
$date = (Get-Date).AddDays($date)
}
else
{
'You entered an invalid date'
exit 1
}
Khi tôi nhập vào một số, ngắt tập lệnh tại dòng phân tích cú pháp ngày. Có vẻ như kiểm tra "của tôi là ngày" của tôi trả về true khi được cấp một số.
Đây có phải là lỗi không? Có phải do thiết kế?
Đó là kịch bản quyền hạn đầu tiên của tôi, vì vậy vui lòng chỉ ra những sai lầm có thể xảy ra của tôi. –