Le paramètre d'entrée de mon script est une date ou un nombre. Voici un script qui fonctionne très bien, de sorte que vous pouvez voir ce que je suis en train de faire:Comment vérifier qu'une chaîne contient une date?
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
}
Voici ma précédente tentative que ne le fait pas travail:
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
}
Quand je entrer un numéro, la Le script se brise à la ligne d'analyse de date. Il semble que mon contrôle "is is date" retourne vrai quand on lui donne un nombre.
Est-ce un bug? Est-ce par conception?
C'est mon premier script PowerShell, alors n'hésitez pas à signaler mes erreurs possibles. –