Question Script et Variable (Résolu)

Plus d'informations
il y a 15 ans 3 mois #3406 par sonic
Réponse de sonic sur le sujet Re:Script et Variable
Je sais pas pourquoi ma reponse apparait plusieurs foi et en vrac !!!
Bon vola ce que j'arrive à faire fonctionner :

[code:1]
$Tableau = Get-Content –path config.dat
Write-Output $Tableau[« rep1 »] ->> ca fonctionne toujours pas ca

$a=$Tableau[\"0\"].Split(\"=\"«»)[1]
$b=$Tableau[\"1\"].Split(\"=\"«»)[1]
$c=$Tableau[\"2\"].Split(\"=\"«»)[1]

$a
$b
$c
[/code:1]
En fait au lieu d'appeler les données du tableau par leur nom, je les appelles par le numero de leur ligne , c'est peut etre pa forcénement mieu mais autrement ca fonctione pas . Une idée ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #3407 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Script et Variable
sonic31 écrit:

Je sais pas pourquoi ma reponse apparait plusieurs foi

Si tu postes un message alors que ta session à expiré le forum te demande si tu veux le reposter dans ce cas répondre nonn car le post est bien pris en compte
sonic31 écrit:

et en vrac !!!

De plus certaines lignes mettent Joomla à rudes épreuve :lol:
sonic31 écrit:

Une idée ?

Peux-tu communiquer le contenu du fichier .dat, là j'ai un peu de mal à comprendre :S<br><br>Message édité par: Laurent Dardenne, à: 9/12/08 15:02

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #3417 par sonic
Réponse de sonic sur le sujet Re:Script et Variable
Bonjour,

Voici le contenu de mon config.dat

$rep1=repertoire1
$fic1=fichier1
$var1=variable1

Ce n'est qu'un test .
Je pensai que avec :
[code:1]Write-Output $Tableau[« $rep1 »][/code:1]
J'aurai :\&quot;repertoire1\&quot;
et par exemple :
[code:1]Write-Output $Tableau[« $fic1»][/code:1]
J'aurai :\&quot;fichier1\&quot;
A la place j'ai ou un message d'erreur (suivatn le syntaxe)ou la ligne complette, par exemple :$rep1=repertoire1 mais meme pas en rapport de ce que je demande :(

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #3418 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Script et Variable
A première vue ce qui se rappoche le plus du comportement, que tu recherches à partir d'un fichier, correspond à la structure d'un fichier ini (clé=valeur).
L'approche suivante :
[code:1]
Write-Output $Tableau[\&quot;$rep1\&quot;]
[/code:1]
peut se faire, par exemple, au travers d'un hastable (clé=valeur) mais pas par un get-content qui récupère un tableaux de ligne, comme tu l'as constaté.

Ensuite sous Powershell il existe le dynamisme
[code:1]
$rep1=$null
$T=get-content config.dat
invoke-expression $T[0]
$rep1
[/code:1]
On peut ajouter du code pour rechercher dans ce tableau un élément par son nom :
[code:1]
$name=\&quot;rep1\&quot;
$T| Where {$_ -match \&quot;^.$name=\&quot;}| invoke-expression
[/code:1]
Un peu laborieux...

Sinon PowerShell propose, autour des cmdlets Export-Clixml et Import-Clixml, un mécanisme de
sérialisation des données basé sur XML. Par exemple les objets suivant :
[code:1]
$n=$null
[char] $c='a'
$p=10
$r=[ref] $p
$ti=@(5,1,485)
$ts=@(\&quot;Un\&quot;,\&quot;Deux\&quot;,\&quot;Trois\&quot;«»)
$Ht=@{1=\&quot;Un\&quot;;2=\&quot;Deux\&quot;;3=\&quot;Trois\&quot;}
[/code:1]
peuvent être sérialisés à l’aide de Export-Clixml :
[code:1]
$r,$p,10,$n,$ti,$ts,\&quot;Test\&quot;,$False,$c,'a',-1.52|Export-clixml (join-path $pwd Test.xml)
[/code:1]
La désérialisation se faisant à l’aide de Import-Clixml, ici autour d'une affectation multiple :
[code:1]
$r,$p,$entier,$n,$ti,$ts,$String,$bool,$c,$char,$double=Import-clixml(join-path $pwd Test.xml)
[/code:1]
Cela correspond parfaitement à ce que tu veux faire, attention aux objets évolués( ex: get-process) qui eux ne seront pas recrées à l'identique.
[code:1]
$MaConfig=@{Rep1=\&quot;Un\&quot;;Fichier1=\&quot;Deux\&quot;;Var1=\&quot;Trois\&quot;}
$MaConfig|export-clixml (join-path $pwd Config.xml)
New-Variable Rep1 $MaConfig.Rep1
#ou
$rep1=\&quot;repertoire1\&quot;
$fic1=\&quot;fichier1\&quot;
$var1=\&quot;variable1\&quot;

$rep1,$fic1,$var1|export-clixml (join-path $pwd Config.xml)
$rep1,$fic1,$var1=Import-clixml(join-path $pwd Config.xml)
[/code]
Ou simplement faire ceci :
[code:1]
function Test([string] $FileName) {
#. .\$filename

#Config.dat est renommé en .ps1
. .\config.ps1
$rep1
$fic1
$var1
}

test
#Affiche
# repertoire1
# fichier1
# variable1
[/code:1]
Tu as l'embarras du choix ;)
Voir aussi ce tutoriel .<br><br>Message édité par: Laurent Dardenne, à: 16/12/08 19:41

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #3479 par sonic
Réponse de sonic sur le sujet Re:Script et Variable
oulalala ben du coup je vais tout tester , Merci .
J'ai un peu mal en ce moment car nous avons une grosse attaque virale, pas grave mais beaucoup de boulot .
Je posterai rapidement mon choix .

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.074 secondes
Propulsé par Kunena