Partager via


Read-Host

Lit une ligne d’entrée à partir de la console.

Syntaxe

Default (Par défaut)

Read-Host
    [[-Prompt] <Object>]
    [-AsSecureString]
    [<CommonParameters>]

Description

L’applet de commande Read-Host lit une ligne d’entrée à partir de la console (stdin). Vous pouvez l’utiliser pour inviter un utilisateur à entrer une entrée. Étant donné que vous pouvez enregistrer l’entrée sous forme de chaîne sécurisée, vous pouvez utiliser cette applet de commande pour inviter les utilisateurs à entrer des données sécurisées, telles que des mots de passe.

Remarque

Read-Host a une limite de 8190 caractères qu’il peut accepter comme entrée d’un utilisateur.

Exemples

Exemple 1 : Enregistrer l’entrée de la console dans une variable

Cet exemple affiche la chaîne « Please enter your age: » comme invite. Lorsqu’une valeur est entrée et que la touche Entrée est enfoncée, la valeur est stockée dans la variable $Age.

$Age = Read-Host "Please enter your age"

Exemple 2 : Enregistrer l’entrée de console sous forme de chaîne sécurisée

Cet exemple montre comment afficher la chaîne « Entrer un mot de passe : » comme invite. Comme une valeur est entrée, les astérisques (*) apparaissent sur la console à la place de l’entrée. Lorsque la touche Entrée est enfoncée, la valeur est stockée en tant qu’objet SecureString dans la variable $pwd_secure_string.

$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString

Exemple 3 : Normalisation de l’entrée

Cet exemple invite l’utilisateur à entrer une liste de villes séparées par des points-virgules. Elle affiche la valeur de la chaîne telle qu’elle est tapée par l’utilisateur. Dans l’exemple, l’utilisateur a ajouté des espaces entre certaines entrées. Cela peut entraîner une erreur plus loin dans le script où le code attend un nom exact.

L’exemple montre comment convertir une chaîne d’entrée en tableau d’entrées sans espaces supplémentaires.

$prompt = @(
    'List the cities you want weather information for.'
    'When specifying multiple cities, separate them with a semi-colon, like:'
    "'New York; Osan; Koforidua'"
) -join ' '

$cities = Read-Host $prompt

"Input cities string: `n`t'$cities'"

$splitCities = $cities -split ';'

"Split cities array:"
$splitCities | ForEach-Object -Process { "`t'$_'" }

$normalizedCities = $splitCities  | ForEach-Object -Process { $_.Trim() }

"Normalized split cities array:"
$normalizedCities | ForEach-Object -Process { "`t'$_'" }
Input cities string:
        '    New York;  Osan   ;Koforidua   '
Split cities array:
        '    New York'
        '  Osan   '
        'Koforidua   '
Normalized split cities array:
        'New York'
        'Osan'
        'Koforidua'

L’exemple utilise l’opérateur -split pour convertir la chaîne d’entrée en tableau de chaînes. Chaque chaîne du tableau inclut le nom d’une autre ville. Cependant, les chaînes fragmentées comportent des espaces supplémentaires. La méthode Trim() supprime les espaces de début et de fin de chaque chaîne.

Paramètres

-AsSecureString

Indique que l’applet de commande affiche des astérisques (*) à la place des caractères que l’utilisateur tape comme entrée. Lorsque vous utilisez ce paramètre, la sortie de l’applet de commande Read-Host est un objet SecureString (System.Security.SecureString).

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Prompt

Spécifie le texte de l’invite. Tapez une chaîne. Si la chaîne inclut des espaces, placez-la entre guillemets. PowerShell ajoute un signe deux-points (:) au texte que vous entrez.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:0
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

String

Par défaut, cette applet de commande retourne une chaîne.

SecureString

Lorsque vous utilisez le paramètre AsSecureString, cette cmdlet retourne un SecureString.

Notes

Cette applet de commande lit uniquement à partir du flux stdin du processus hôte. En règle générale, le flux stdin est connecté au clavier de la console hôte.