Question
mon script ne fonctione pas (fonction + switch)
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 12 ans 10 mois #15223
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:mon script ne fonctione pas (fonction + switch)
Voici un cas où l'usage d'une variable globale est nécessaire, le contexte est un setup constitué de nombreuses demandes et dans chaque fonction en erreur on peut demander l'arrêt du script principal :
[code:1]
$sb={
$Yes=0
$No=1
$Global:Choice=$No
function YesNo{
#Default choice = No
param($Caption, $Message)
$Yes = New-Object System.Management.Automation.Host.ChoiceDescription \"&Yes\"
$No = New-Object System.Management.Automation.Host.ChoiceDescription \"&No\"
$Choices = [System.Management.Automation.Host.ChoiceDescription[]]($Yes,$No)
$Global:Choice=$Host.UI.PromptForChoice($Caption,$Message,$Choices,1)
$Global:Choice
}
$sbAbort= {(YesNo -M \"Voulez-vous arrêter ce script ?\"«») -eq $Yes}
function Read-AccountInformationHost {
if ($Global:Choice -eq $Yes) {return}
#Nom et password du compte de service à utiliser
do {
$Credential = $host.ui.PromptForCredential(\"Mon compte \", \"Entrez un nom de compte et un mot de passe.\", \"\", \"AccountName\",\"Default\",\"AlwaysPrompt\"«»)
}
until (($Credential -ne $null) -or (&$sbAbort) )
if ($Global:Choice -eq $Yes) {return}
}
Read-AccountInformationHost
if ($Global:Choice -eq $Yes)
{Write-host \"Abandon\" }
else
{Write-host \"Suite du setup\" }
}
&$sb
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 21/06/13 20:27
[code:1]
$sb={
$Yes=0
$No=1
$Global:Choice=$No
function YesNo{
#Default choice = No
param($Caption, $Message)
$Yes = New-Object System.Management.Automation.Host.ChoiceDescription \"&Yes\"
$No = New-Object System.Management.Automation.Host.ChoiceDescription \"&No\"
$Choices = [System.Management.Automation.Host.ChoiceDescription[]]($Yes,$No)
$Global:Choice=$Host.UI.PromptForChoice($Caption,$Message,$Choices,1)
$Global:Choice
}
$sbAbort= {(YesNo -M \"Voulez-vous arrêter ce script ?\"«») -eq $Yes}
function Read-AccountInformationHost {
if ($Global:Choice -eq $Yes) {return}
#Nom et password du compte de service à utiliser
do {
$Credential = $host.ui.PromptForCredential(\"Mon compte \", \"Entrez un nom de compte et un mot de passe.\", \"\", \"AccountName\",\"Default\",\"AlwaysPrompt\"«»)
}
until (($Credential -ne $null) -or (&$sbAbort) )
if ($Global:Choice -eq $Yes) {return}
}
Read-AccountInformationHost
if ($Global:Choice -eq $Yes)
{Write-host \"Abandon\" }
else
{Write-host \"Suite du setup\" }
}
&$sb
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 21/06/13 20:27
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.031 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- mon script ne fonctione pas (fonction + switch)