Question récuperer les fichiers les plus récents

Plus d'informations
il y a 13 ans 10 mois #11663 par Thierry S.
Laurent Dardenne écrit:

Thierry94 écrit:

Si quelqu'un a mieux, j'suis preneur...

Dans ce cas il faut fournir un jeux de test, ou un script de génération d'un jeux de test.
A mon avis, bien que ce soit une solution et qu'on peut s'en contenter, l'approche du copier /coller est à bannir. Sa seule fonction est de nous transformer en perroquet :whistle:
co co ...


Bonjour,
ce que je ne comprends pas , c'est que le passage cumulé dans les deux premiers pipes fonctionne sur la recherche simultanée de titi tata toto...
(j'obtiens bien les fichiers de - de x jours et de - de 2mo et ce pour chaque fichier)
Alors que le \"sort lastwritetime - desc -first\" se faite sur le résultat obtenu (donc sur les 7 a 10 ficiers récupérés, je ne remonte que le \"first\" du magasin récupéré) ?

Pourquoi la boucle de recherche sur les fichiers demandés sur le dossier (de 30000) s'exécute correctement quand il s'agit de remonter les fichiers de - de 2mo de moins de x jours dans ce cas ?

Ce que je ne saisis pas c'est cette différence de comportement ????
1er comportement : le scan (le tri) se fait sur le magasin entier (le dossier de 30 000 files)
2eme comportement : le tri pour obtenir la derniere écriture se fait sur le résultat obtenu...


Dans ma logique ,
titi, tata toto passent chacun a leur tour dans les pipes successifs ::S
1er PIPE --> - de x jour
2eme PIPE --> - de 2mo
3eme PIPE --> toutes les versions de chaque fichier (titi tata toto) sont remontées puis triées par ordre croissant de date (sort lastwritetime -desc)
4eme PIPE : seule la version de titi tata toto en \"top\" (-first 1) est gardée


bon je débute, donc j'apprends :)<br><br>Message édité par: Thierry94, à: 27/04/12 08:35

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

Plus d'informations
il y a 13 ans 10 mois #11666 par sebastien
Bonjour,

Je vais surement dire une bétise mais quelque chose comme ca ne pourrait il pas permettre de ne faire qu'un seul get-childitem ? :

[code:1]$NJ_ETAT = $NJA_C = $K2U_ONC = $X01_R = \&quot;\&quot;

Get-ChildItem $mydata -include NJ_ETAT.*,NJA_C.*,K2U_ONC.*,X01_R.* -recurse |Where {$_.LastWriteTime -gt \&quot;$lastmod\&quot;} |Where {$_.length -lt 2000000}|
{
switch ($_.basename)
\&quot;NJ_ETAT\&quot; {if ($NJ_ETAT -eq \&quot;\&quot;«») {$NJ_ETAT = $_} elseif ($NJ_ETAT.LastWriteTime -lt $_.LastWriteTime) {$NJ_ETAT = $_}}
\&quot;NJA_C\&quot; {if ($NJA_C -eq \&quot;\&quot;«») {$NJA_C = $_} elseif ($NJA_C.LastWriteTime -lt $_.LastWriteTime) {$NJA_C = $_}}
\&quot;K2U_ONC\&quot; {if ($K2U_ONC -eq \&quot;\&quot;«») {$K2U_ONC = $_} elseif ($K2U_ONC.LastWriteTime -lt $_.LastWriteTime) {$2U_ONC = $_}}
\&quot;X01_R\&quot; {if ($X01_R -eq \&quot;\&quot;«») {$X01_R = $_} elseif ($X01_R.LastWriteTime -lt $_.LastWriteTime) {$X01_R = $_}}
}[/code:1]<br><br>Message édité par: sebasti1, à: 27/04/12 13:10

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

Plus d'informations
il y a 13 ans 10 mois #11689 par Laurent Dardenne
Thierry94 écrit:

4eme PIPE : seule la version de titi tata toto en \&quot;top\&quot; (-first 1) est gardée

Non,un seul objet est renvoyé.
Tu dois regrouper des fichiers par nom, un exemple :
[code:1]
$location=\&quot;c:\temp\Test\&quot;
Set-location $Location
$Compteur=10
$Name=@(\&quot;NJ_ETAT\&quot;,\&quot;NJA_C\&quot;,\&quot;K2U_ONC\&quot;,\&quot;X01_R\&quot;«»)

$hour = \&quot;+12\&quot;
$jour = get-date
$lastmod = $jour.Addhours(-$hour)

$Name|% {
$name=$_
1..$Compteur|
Foreach {
fsutil file createnew \&quot;$Location\$name.$(Get-Random -Maximum 20)\&quot; 1000000
}
}

$Files = Get-ChildItem $location -include NJ_ETAT.*,NJA_C.*,K2U_ONC.*,X01_R.* -recurse |
Foreach {
$sName=[System.IO.Path]::GetFileNameWithoutExtension($_.Name)
Add-member -inputObject $_ -membertype noteproperty -Name ShortName -value $sName -pass
}|
Group-Object -property ShortName |
Foreach {
$_.Group|
# Where {$_.LastWriteTime -gt \&quot;$lastmod\&quot;} |
Where {$_.length -lt 2000000}|
Sort LastWriteTime -desc |
Select -first 2
}

[/code:1]
La clause sur la date est à ajouter et à vérifier.

Tutoriels PowerShell

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

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