Question
Comp. d'objets : différences de résultats (Résolu)
- sonic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 11 mois #2073
par sonic
Comp. d'objets : différences de résultats (Résolu) a été créé par sonic
Bon j'ai commencé le livre , c'est super .
Bref j'ai un petit problème qui me fait un peu car si ca fontionne pas je vais avoir beaucoup de boulot a refaire et vite
En fait actuellement mon script tourne en boucle infini . Je voudrait donc stoker un objet pour le charger a chaque itération . Du coup plus besoin de la boucle infinit . sauf que ca ne fonctionne pas !!
Je fait un :[code:1]get-childitem $rep -r |Where-Object {$_.PSIsContainer -eq 0}[/code:1] que je veux stoker sur disque, mais quand je le recharge et que je l'utilse ca fonctionne pas . Si je recrée la variable avec la comande sans l'export import ca fonctionne .
Voila:
J'ai $ancien
[code:1]
get-childitem $rep -r |Where-Object {$_.PSIsContainer -eq 0} | export-clixml $reptrv\tutu.xml
$ancien = import-clixml $reptrv\tutu.xml
[/code:1]
et $ancien2
[code:1]
$ancien2 =get-childitem $rep -r |Where-Object {$_.PSIsContainer -eq 0}
[/code:1]
Je pensait que cela devait me donner le meme objets sauf $ancien2 en mort pour car venant de xml , il ne change plus quoi ! C'est ce que je voulais .
Je regarde les 2 objets , il semble identique mais ca fonctionne pas .
Sans passé par export/import ca fonctionne avec non.
Au lieu du resultat j'ai les message d'erreur qui suivent quand je l'utilise :
[code:1]PS C:\dev> $t=$ancien | where-object {((get-childitem $rep -r $_) -eq $null)}
Get-ChildItem : Le chemin d'accès spécifié, le nom de fichier ou les deux sont trop longs. Le nom de fichier qualifié c
omplet doit comprendre moins de 260 caractères et le nom du répertoire moins de 248 caractères.
Au niveau de ligne : 1 Caractère : 43
+ $t=$ancien | where-object {((get-childitem <<<< $rep -r $_) -eq $null)}
Get-ChildItem : Le chemin d'accès spécifié, le nom de fichier ou les deux sont trop longs. Le nom de fichier qualifié c
omplet doit comprendre moins de 260 caractères et le nom du répertoire moins de 248 caractères.
Au niveau de ligne : 1 Caractère : 43
+ $t=$ancien | where-object {((get-childitem <<<< $rep -r $_) -eq $null)}[/code:1]
Je ne comprend pas du tout
.
Help svp
Message édité par: sonic31, à: 2/04/08 22:43<br><br>Message édité par: Arnaud, à: 28/04/08 14:36
Bref j'ai un petit problème qui me fait un peu car si ca fontionne pas je vais avoir beaucoup de boulot a refaire et vite
En fait actuellement mon script tourne en boucle infini . Je voudrait donc stoker un objet pour le charger a chaque itération . Du coup plus besoin de la boucle infinit . sauf que ca ne fonctionne pas !!
Je fait un :[code:1]get-childitem $rep -r |Where-Object {$_.PSIsContainer -eq 0}[/code:1] que je veux stoker sur disque, mais quand je le recharge et que je l'utilse ca fonctionne pas . Si je recrée la variable avec la comande sans l'export import ca fonctionne .
Voila:
J'ai $ancien
[code:1]
get-childitem $rep -r |Where-Object {$_.PSIsContainer -eq 0} | export-clixml $reptrv\tutu.xml
$ancien = import-clixml $reptrv\tutu.xml
[/code:1]
et $ancien2
[code:1]
$ancien2 =get-childitem $rep -r |Where-Object {$_.PSIsContainer -eq 0}
[/code:1]
Je pensait que cela devait me donner le meme objets sauf $ancien2 en mort pour car venant de xml , il ne change plus quoi ! C'est ce que je voulais .
Je regarde les 2 objets , il semble identique mais ca fonctionne pas .
Sans passé par export/import ca fonctionne avec non.
Au lieu du resultat j'ai les message d'erreur qui suivent quand je l'utilise :
[code:1]PS C:\dev> $t=$ancien | where-object {((get-childitem $rep -r $_) -eq $null)}
Get-ChildItem : Le chemin d'accès spécifié, le nom de fichier ou les deux sont trop longs. Le nom de fichier qualifié c
omplet doit comprendre moins de 260 caractères et le nom du répertoire moins de 248 caractères.
Au niveau de ligne : 1 Caractère : 43
+ $t=$ancien | where-object {((get-childitem <<<< $rep -r $_) -eq $null)}
Get-ChildItem : Le chemin d'accès spécifié, le nom de fichier ou les deux sont trop longs. Le nom de fichier qualifié c
omplet doit comprendre moins de 260 caractères et le nom du répertoire moins de 248 caractères.
Au niveau de ligne : 1 Caractère : 43
+ $t=$ancien | where-object {((get-childitem <<<< $rep -r $_) -eq $null)}[/code:1]
Je ne comprend pas du tout
Help svp
Message édité par: sonic31, à: 2/04/08 22:43<br><br>Message édité par: Arnaud, à: 28/04/08 14:36
Connexion ou Créer un compte pour participer à la conversation.
- sonic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 11 mois #2075
par sonic
Réponse de sonic sur le sujet Re:export import d'objet des différences de résulat !
J'utilise aussi :
get-date |export-clixml $reptrv\anciendate.xml
suivit d'un
$derniercheck = import-clixml $reptrv\anciendate.xml
Qui lui, semble fonctionner quand je m'en ser .
get-date |export-clixml $reptrv\anciendate.xml
suivit d'un
$derniercheck = import-clixml $reptrv\anciendate.xml
Qui lui, semble fonctionner quand je m'en ser .
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 11 mois #2079
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:export import d'objet des différences de résulat !
Salut,
j'ai pas trop compris ce que tu souhaites faire
Quand tu parles d'objet, c'est bien une collection d'objets que tu manipules. En qq sorte tu prends une \"photo\" du contenu d'un répertoire ?
j'ai pas trop compris ce que tu souhaites faire
Quand tu parles d'objet, c'est bien une collection d'objets que tu manipules. En qq sorte tu prends une \"photo\" du contenu d'un répertoire ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- sonic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 11 mois #2081
par sonic
Réponse de sonic sur le sujet Re:export import d'objet des différences de résulat !
Exactement .
Je prend une photos avant du contenu du répertoire . Je récupére l'objet sur disque en xml ,et le scripts s'arréte .
Ensuite je relance le script et je me ser de la photos avant (import de l'objet) pour des comparaisons avec l'etat actuel .
Je prend une photos avant du contenu du répertoire . Je récupére l'objet sur disque en xml ,et le scripts s'arréte .
Ensuite je relance le script et je me ser de la photos avant (import de l'objet) pour des comparaisons avec l'etat actuel .
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 11 mois #2087
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:export import d'objet des différences de résulat !
sonic31 écrit:
[code:1]
where-object {((get-childitem $rep -r $_) -eq $null)}
[/code:1]
Si tu souhaites réaliser des comparaisons, il vaut mieux récupérer le nouveau contenu une seule fois
[code:1]
$New=get-childitem $rep -r
[/code:1]
Ensuite faire qq chose comme
[code:1]
$ancien | where-object { $news -contains $_}
#l'inverse
$ancien | where-object { !($news -contains $_)}
#un peu de détail
$ancien | where-object { !($news -contains $_)}| %{$_.name}
[/code:1]
Ensuite cela dépend des critéres de comparaison sur lesquels tu veux travailler, reste à savoir s'il est possible de récupérer de la collection $New l'elément à comparer avec $_ ...
D'accord. C'est bien ce que cette instruction est sensé faire ?je me ser de la photos avant (import de l'objet) pour des comparaisons avec l'etat actuel .
[code:1]
where-object {((get-childitem $rep -r $_) -eq $null)}
[/code:1]
Si tu souhaites réaliser des comparaisons, il vaut mieux récupérer le nouveau contenu une seule fois
[code:1]
$New=get-childitem $rep -r
[/code:1]
Ensuite faire qq chose comme
[code:1]
$ancien | where-object { $news -contains $_}
#l'inverse
$ancien | where-object { !($news -contains $_)}
#un peu de détail
$ancien | where-object { !($news -contains $_)}| %{$_.name}
[/code:1]
Ensuite cela dépend des critéres de comparaison sur lesquels tu veux travailler, reste à savoir s'il est possible de récupérer de la collection $New l'elément à comparer avec $_ ...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 11 mois #2088
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:export import d'objet des différences de résulat !
Il est préférable d'utiliser le Cmdlet Compare-Object :
[code:1]
Compare-Object $Ancien $New -property LastWriteTime -passthru|? {$_.SideIndicator -eq \"=>\"}
[/code:1]
Je te laisse creuser le sujet.
[code:1]
Compare-Object $Ancien $New -property LastWriteTime -passthru|? {$_.SideIndicator -eq \"=>\"}
[/code:1]
Je te laisse creuser le sujet.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Comp. d'objets : différences de résultats (Résolu)