Question
Array variable
- Quentin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 14
- Remerciements reçus 0
J'aimerai créer un tableau de dimension spéciale :
En effet, j'aimerai qu'il soit de la forme
Array[x][0] = \"valeur\"
Array[x][1][0] = \"valeur 0\"
Array[x][1][1] = \"valeur 1\"
...
Array[x][1][xxx] = \"valeur xxx\"
Array[x][2] = \"valeur 2\"
Voici comme j'ai déclaré :
[code:1]$a = Get-Content (\"C:\monfichier.ldif\"«»)
$i = 0
$j = 0
$k = 0
$array = @()
$array +=@()
$array +=@()
#
# 0 : uid ; 1 : otherMailbox ; 2 : forwardingAdress
#
Foreach ( $line in $a ) {
if($line.Equals(\"\"«»))
{
$line = \"FIN\"
$i ++;
$j = 0
$k = 0
}
if($line -match \"^dn: uid=*\"«»)
{
$line_split = $line.split(\"=\"«»)
$line_split2 = $line_split[1].split(\",\"«»)
$lineFormated = $line_split2[0]
$array[$i][0] = $lineFormated
Write-Host $lineFormated
}
if($line -match \"^mailAlternateAddress:*\"«»)
{
$line_split = $line.split(\":\"«»)
$line = $line_split[1]
$line.Trim()
$array[$i][1][$j] = $line
$j ++
}
if($line -match \"^mailForwardingAddress:*\"«»)
{
$line_split = $line.split(\":\"«»)
$line = $line_split[1]
$line.Trim()
$array[$i][2] = $line
$k ++
}
}[/code:1]
Voici les messages d'erreur :
[code:1]Impossible d'indexer dans un tableau Null.
Au niveau de C:\traitement_LDAP.ps1 : 29 Caractère : 14
+ $array[$i][ <<<< 0] = $lineFormated
+ CategoryInfo : InvalidOperation: (0:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
Impossible d'indexer dans un tableau Null.
Au niveau de C:\traitement_LDAP.ps1 : 38 Caractère : 14
+ $array[$i][ <<<< 1][$j] = $line
+ CategoryInfo : InvalidOperation: (1:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray[/code:1]
Merci d'avance de votre aide.
Quentin.<br><br>Message édité par: quentin96, à: 16/12/13 09:57
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
- Messages : 530
- Remerciements reçus 0
Le problème actuel c'est que :
[code:1]$array = @()
$array +=@()
$array +=@()[/code:1]
Ne va pas créer des tableaux imbriqués mais va concaténer des tableau vide (donc rien faire au final)
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- ANTRI Mohamed
- Hors Ligne
- Membre premium
- Messages : 124
- Remerciements reçus 0
quel est le but de votre script ? Peut-être qu'il y a un moyen plus simple de réalisé ce que vous souhaitez.
merci.
Connexion ou Créer un compte pour participer à la conversation.
- Quentin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 14
- Remerciements reçus 0
Bonjour,
Le problème actuel c'est que :
[code:1]$array = @()
$array +=@()
$array +=@()[/code:1]
Ne va pas créer des tableaux imbriqués mais va concaténer des tableau vide (donc rien faire au final)
Donc il faut que je fasse mes tableau séparément et que je les concatène ?
Par exemple moi qui fait du php, je n'ai pas cette notion de déclaration...
Antri écrit:
Bonjour,
quel est le but de votre script ? Peut-être qu'il y a un moyen plus simple de réalisé ce que vous souhaitez.
merci.
Le but est de récupérer un adresse mail, tous les alias de cette adresse mail et récupérer l'adresse de forward pour cette adresse et ses alias, afin de les injecter dans un AD.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
as-tu un jeux de test à nous communiquer ?
De ce que j'ai compris ton fichier ressemble à ceci :
[code:1]
$file='c:\temp\Datas1.txt'
$a=@\"
test :recherche uid1
dn: uid= uid1,uid2,uid3,uid4
test :recherche email alternative
mailAlternateAddress:Autre@home.com
test :recherche email alternative
mailForwardingAddress:Forward@Home.com
\"@ >$file
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Quentin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 14
- Remerciements reçus 0
dn: uid=personne,ou=people,dc=home,dc=fr
modifytimestamp: 20091025102613Z
modifiersname: cn=directory manager
gecos: ITA - Adjoint
dspswloop: true
mailAlternateAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
mailAlternateAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
mailAlternateAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
userPassword: {crypt}dfsdfsdfz
datesortieAD: 135063900000000000
DateSortie: 20281231235959.0Z
ascoriaPresence: xxxxxxx.fr/kronolith/fb.php?u=personne
homeDirectory: /home/personne
vacationActive: FALSE
mailForwardingAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
sn: Personne Nom
cn: Personne
FileServerName: server
dspswuserlink:: fsdfsdfsjfkls
uidNumber: 1111
gidNumber: 11
loginShell: /usr/bin/tcsh
creatorsname: cn=directory manager
createtimestamp: 20031023105510Z
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
objectClass: mailrecipient
objectClass: inetorgperson
objectClass: organizationalPerson
objectClass: person
objectClass: qmailuser
objectClass: account
objectClass: dspswuser
objectClass: blabla
objectClass: test
uid: personne
shadowLastChange: 11330
shadowFlag: 0
mail: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
accountStatus: active
nsuniqueid: lalalalalalalala
parentid: 34
entryid: 30
entrydn: uid=personne,ou=people,dc=home,dc=fr
numsubordinates: 0
subschemasubentry: cn=schema
hassubordinates: FALSE
Voici un exemple du jeu de donnée.
Ceci se répère ... beaaaaaaucoup de fois.
Encore merci de l'interêt que vous porté à mon petit problème.
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Array variable