Comment faire pour vérifier si l'utilisateur appuie sur entrée sans entrée dans un script powershell?
J'ai un script powershell où je veux à l'utilisateur de saisir une valeur et le script retourne une étude randomisée en chaîne de caractères pour un mot de passe. Si ils ont juste appuyez sur entrée lorsque vous êtes invité pour la longueur du mot de passe, je veux que ce soit un défaut de 9 caractères.
Comment dois-je traiter pas d'entrée?
J'ai essayé quelque chose comme ça, mais ne pense pas que c'est tout à fait juste:
Write-Host Entrez le mot de passe de condition de durée:
$length = Read-Host
IF ( $length -eq $NULL)
{ Do continue on with the value of 9 for the length}
ELSE
{Use $length for the rest of the script}
La partie else fonctionne très bien; cependant lors de la génération de mots de passe je garde de me trouver en tapant 9 maintes et maintes fois. Je préfère appuyez simplement sur entrée.
Toute aide est grandement appréciée!
Vous devez vous connecter pour publier un commentaire.
PowerShell est grand, parce que vous pouvez raccourcir le code très souvent et ça fonctionne 🙂
Pourquoi?
Je dirais "fonctionne comme prévu". Parce que $longueur n'est pas NULLE. le droit de tester est :
Donc peut-être une conjonction des deux tests.
JP
IF ( $longueur -eq "")
au lieu de
IF ( $longueur -eq $NULL)
devrait le faire.
La meilleure manière de le faire serait d'un paramètre au script et à l'utilisation de la V2 attributs de validation. Cela permettra également d'éviter de placer dans de mauvaises données, comme les chaînes
param(
[Parameter(Mandatory=$true)]
[ValidateRange(1,9)]
[Int]
$Longueur
)
Cela vous donnera une meilleure validation et cohérente et localisée des erreurs.
Espère que cette aide