El parámetro de entrada de mi script es una fecha o un número. Esto es un guión que funciona bien, para que pueda ver lo que yo estoy tratando de hacer:¿Cómo puedo verificar que una cadena contiene una fecha?
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
}
Aquí está mi intento previo de que no trabajo:
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
}
Cuando ingrese un número, script se rompe en la línea de análisis de fecha. Parece que mi verificación "is is date" devuelve true cuando se le da un número.
¿Es un error? ¿Es por diseño?
Es mi primer script de powershell, así que siéntete libre de señalar mis posibles errores. –