首页 > 解决方案 > Powershell 循环执行

问题描述

我想执行我的脚本两次,但是当我启动它时,它会执行脚本 1 次。我认为错误在于do While但我不知道为什么。

$EntrezN = Read-Host -Prompt "Entrez le nom de l'utilisateur que vous voulez créer"
$EntrezP = Read-Host -Prompt "Entrez le Prenom de l'utilisateur que vous voulez créer"
$EntrezT = Read-Host -Prompt "Entrez le Type de l'utilisateur que vous voulez créer "
$EntrezPro = Read-Host -Prompt "Entrez le Programme de l'utilisateur que vous voulez créer (optionel) "
$nomLenght = $EntrezN.length;
$PrenomLenght=$EntrezP.Length;
$nom = $EntrezN;
$Prenom=$EntrezP;
$type=$EntrezT;
$programme=$EntrezPRO
$NomUtilisateur=$nom+"."+$Prenom
$MDP=Get-Random -Minimum 10000000  -Maximum 99999999
$TableauUserName=@()

<#function AfficherMenu
{
    Clear-Host
    Write-Host "================ TP2 ================"
    Write-Host "1: Appuyer sur '1' pour Créer des Utilisateurs"
    Write-Host "Q: Press 'Q' to quit."
}#>


$a = 1 

DO

{if ($nomLenght -gt 25 -or $nom -lt 1 -or $PrenomLenght -gt 25 -or $PrenomLenght -lt 1)  { 
echo "Utilisateur Invalide"
exit
}
else{echo $NomUtilisateur
$TableauUserName += $NomUtilisateur
echo "Le tableau possède les elements suivants:" $TableauUserName
echo $MDP}

if( $type -eq "etudiant" -or $type -eq "Etudiant"  )  {
echo " type valide"
echo "le Type de l'utilisateur est :" $type
}elseif($type -eq "personnel" -or $type -eq "Personnel") {
echo "type valide"
echo "le Type de l'utilisateur est :" $type
}elseif($type -eq "enseignant" -or $type -eq "Enseignant") {
echo "type valide"
echo "le Type de l'utilisateur est :" $type
}else{
echo "type invalide"

exit
}

if( $programme -eq "Telecommunication" -or $programme -eq "telecommunication"  )  {
echo "Le programme est :" $programme
exit
}elseif($programme -eq "Gestion" -or $programme -eq "gestion") {
echo "Le programme est :" $programme
exit
}elseif($programme -eq "Informatique" -or $programme -eq "informatique") {
echo "Le programme est :" $programme}
exit
}

While ($a -le 2)

<#do
{
AfficherMenu
    $selection = Read-Host "Please choose an option"
    switch ($selection)
    {
        '1'
        {
            # ajouter la fonction ajouter users
        }
        
    }
    pause
}
until ($selection -eq 'q')#>

标签: powershell

解决方案


请注意缩进和呈现代码的方式,这对您和其他阅读您的代码的人来说是基本的。在结束时while loop有一个exit所以它运行一次。我将它包含在 else 中:

$EntrezN = Read-Host -Prompt "Entrez le nom de l'utilisateur que vous voulez créer"
$EntrezP = Read-Host -Prompt "Entrez le Prenom de l'utilisateur que vous voulez créer"
$EntrezT = Read-Host -Prompt "Entrez le Type de l'utilisateur que vous voulez créer "
$EntrezPro = Read-Host -Prompt "Entrez le Programme de l'utilisateur que vous voulez créer (optionel) "
$nomLenght = $EntrezN.length;
$PrenomLenght=$EntrezP.Length;
$nom = $EntrezN;
$Prenom=$EntrezP;
$type=$EntrezT;
$programme=$EntrezPRO
$NomUtilisateur=$nom+"."+$Prenom
$MDP=Get-Random -Minimum 10000000  -Maximum 99999999
$TableauUserName=@()

$a = 1 

DO
{
  if ($nomLenght -gt 25 -or $nom -lt 1 -or $PrenomLenght -gt 25 -or $PrenomLenght -lt 1){ 
    echo "Utilisateur Invalide"
    exit
  }
  else{
    echo $NomUtilisateur
    $TableauUserName += $NomUtilisateur
    echo "Le tableau possède les elements suivants:" $TableauUserName
    echo $MDP
  }

  if( $type -eq "etudiant" -or $type -eq "Etudiant"  )  {
    echo " type valide"
    echo "le Type de l'utilisateur est :" $type
  }elseif($type -eq "personnel" -or $type -eq "Personnel") {
    echo "type valide"
    echo "le Type de l'utilisateur est :" $type
  }elseif($type -eq "enseignant" -or $type -eq "Enseignant") {
    echo "type valide"
    echo "le Type de l'utilisateur est :" $type
  }else{
    echo "type invalide"
   exit
  }

  if( $programme -eq "Telecommunication" -or $programme -eq "telecommunication"  )  {
    echo "Le programme est :" $programme
    exit
  }elseif($programme -eq "Gestion" -or $programme -eq "gestion") {
    echo "Le programme est :" $programme
    exit
  }elseif($programme -eq "Informatique" -or $programme -eq "informatique") {
    echo "Le programme est :" $programme
    exit
  }
} 
While ($a -le 2)

推荐阅读