Question
probleme de tri avec Get-Child-Item
- Thierry S.
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 19
- Remerciements reçus 0
Tu peux utilisé justement get-childitem pour le tester. Si le répertoire est vide, il te retourne un null.
[code:1]
if ((Test-Path $mydata) -and (gci $mydata)) {
$true
}
else {
$false
}
[/code:1]
Et pour ton deuxième soucis, précise à la fin du chemin de ton dossier que c'est le contenu que tu veux récupérer avec une *. Essaye ceci :
[code:1]
Get-ChildItem \"c:\PATHSOURCE\*\"-include NJ_ETAT.*,NJA_C.*,K2U_ONC.*,X01_R.*
[/code:1]<br><br>Message édité par: yvesca, à: 5/04/12 17:56
ok pour le second probleme !
Get-ChildItem \"$mydata\*\"
j'avais essayé, mais j'avais omis les \"\" ..
Merci
je teste le 1er prb....et je re.
Connexion ou Créer un compte pour participer à la conversation.
- Thierry S.
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 19
- Remerciements reçus 0
Tu peux utilisé justement get-childitem pour le tester. Si le répertoire est vide, il te retourne un null.
[code:1]
if ((Test-Path $mydata) -and (gci $mydata)) {
$true
}
else {
$false
}
[/code:1]
marche pas
[code:1]$FilesAF = Get-ChildItem \"$mydata\*\" -include NJ1*.*,NKI*.*,K2U*.*
|Where {$_.LastWriteTime -gt \"$lastmod\"} |Where {$_.length -lt 2000000}
#
if ((Test-Path $mydata) -and (gci $mydata))
{
foreach ($FileAF in $FilesAF)
{
write-host \"Fichier \" -nonewline; write-host \"$FileAF\" -foregroundcolor \"green\" -backgroundcolor \"black\" -nonewline; write-host \" trouvé\" ;
Copy-Item $FileAF $pathcopyAF
}
}
Else
{
Write-Host \"Le Repertoire $mydata EST VIDE !\"
}[/code:1]
j'pense que je m'y prends pas bien
En fait , le test doit se faire sur mes filtres...
mais ce n'est pas le cas,
le test-path constate q'ils y a des fichiers (autres que ce que je veux... et continue avec $true\")
mais comme la variable $FileAf est vide , ça coince pour la copy-item.
d'ailleurs je devrais écrire :
Write-Host \"Aucun fichier de - de 12h et de - de 2o trouvé !\"
au lieu de
Write-Host \"Le Repertoire $mydata EST VIDE !\"
PS.
il faut que je teste si $FileAF est égal à $null...
je pense???<br><br>Message édité par: Thierry94, à: 6/04/12 12:49
Connexion ou Créer un compte pour participer à la conversation.
- Yves Campmas
- Hors Ligne
- Nouveau membre
- Messages : 8
- Remerciements reçus 0
[code:1]
if ($FilesAF) {
Write-Host \"Le Repertoire $mydata N'EST PAS VIDE !\"
}
else {
Write-Host \"Le Repertoire $mydata EST VIDE !\"
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Thierry S.
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 19
- Remerciements reçus 0
Tout simplement en testant dans ta condition si ta variable est null ou pas. Si il ne trouve aucun élément dans le dossier avec la cmdlet gci, elle va être null :
[code:1]
if ($FilesAF) {
Write-Host \"Le Repertoire $mydata N'EST PAS VIDE !\"
}
else {
Write-Host \"Le Repertoire $mydata EST VIDE !\"
}
[/code:1]
yes j'ai réussi
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
une petite remarque en passant :
yvesca écrit:
Prenez garde avec cette construction, ici cela fonctionne comme tu le précises, mais certains cmdlets ou fonctions peuvent renvoyer des collections vide, i.e. avec count=0.Tout simplement en testant dans ta condition si ta variable est null ou pas. Si il ne trouve aucun élément dans le dossier avec la cmdlet gci, elle va être null
Et à débugger c'est assez pénible.
Pour s'en prémunir :
[code:1]
$Result=@(traitement)
if ($Result.count -ne 0}
{ \"OK\" }
else
{\"NOK\"}
[/code:1])
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- probleme de tri avec Get-Child-Item