Question
Probleme script avec une variable
- Leharivel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 14 ans 11 mois #9722
par Leharivel
Probleme script avec une variable a été créé par Leharivel
Bonjour,
J'ai un problème concernant mon script powershell
Mon script permet de supprimer les fichiers qui sont antérieure à 30 jours par rapport à la date d'aujourd'hui
Ce script fonctionne pour un nombre de fichiers d'environ 1000
Mais sur mon serveur de fichier cela peux monter à plus de 200 000 fichiers
Pour exemple :
Mon serveur à 8 Go de Ram
Quand je lance mon script la mémoire est en saturation
Process du script powershell 7 856 555 Ko et mon serveur est en freeze
Savez vous comment je peux faire pour que cela fonctionne ?
# Début du script
# Déclaration des variables
$mydata = D:\temp
$jour = Get-Date
$lastmod = $jour.AddDays(-30)
# requête
$Files = get-childitem $mydata -include *.* -recurse |Where {$_.LastWriteTime -le \"$lastmod\"}
# Action pour chaque enregistrement de la variable $Files
foreach ($File in $Files)
{
write-host \"Deleting File $File\" -foregroundcolor \"Red\"; # Remove-Item $File | out-null
}
# Fin du script
J'ai un problème concernant mon script powershell
Mon script permet de supprimer les fichiers qui sont antérieure à 30 jours par rapport à la date d'aujourd'hui
Ce script fonctionne pour un nombre de fichiers d'environ 1000
Mais sur mon serveur de fichier cela peux monter à plus de 200 000 fichiers
Pour exemple :
Mon serveur à 8 Go de Ram
Quand je lance mon script la mémoire est en saturation
Process du script powershell 7 856 555 Ko et mon serveur est en freeze
Savez vous comment je peux faire pour que cela fonctionne ?
# Début du script
# Déclaration des variables
$mydata = D:\temp
$jour = Get-Date
$lastmod = $jour.AddDays(-30)
# requête
$Files = get-childitem $mydata -include *.* -recurse |Where {$_.LastWriteTime -le \"$lastmod\"}
# Action pour chaque enregistrement de la variable $Files
foreach ($File in $Files)
{
write-host \"Deleting File $File\" -foregroundcolor \"Red\"; # Remove-Item $File | out-null
}
# Fin du script
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 14 ans 11 mois #9723
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Probleme script avec une variable
Salut,
utilise un seul pipe, ainsi tu ne contruiras pas de liste en mémoire:
[code:1]
Get-ChildItem $mydata -include *.* -recurse|
Where {$_.LastWriteTime -le \"$lastmod\"}|
Remove-Item $File -Verbose| out-null
[/code:1]
Mais pour les traitements de masse sur les fichiers PS est à la peine, tu peux rechercher sur le forum d'autre posts qui traite du sujet.
utilise un seul pipe, ainsi tu ne contruiras pas de liste en mémoire:
[code:1]
Get-ChildItem $mydata -include *.* -recurse|
Where {$_.LastWriteTime -le \"$lastmod\"}|
Remove-Item $File -Verbose| out-null
[/code:1]
Mais pour les traitements de masse sur les fichiers PS est à la peine, tu peux rechercher sur le forum d'autre posts qui traite du sujet.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Leharivel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 14 ans 11 mois #9758
par Leharivel
Réponse de Leharivel sur le sujet Re:Probleme script avec une variable
En utilisant mon script comment je pourrai faire pour utiliser while avec une incrémentation
exemple
while ($i, ma commande, $i++)
Je pense que cela pourrai résoudre mon problème lorsque j'ai un nombre important de fichier
Merci de futur réponses
exemple
while ($i, ma commande, $i++)
Je pense que cela pourrai résoudre mon problème lorsque j'ai un nombre important de fichier
Merci de futur réponses
Connexion ou Créer un compte pour participer à la conversation.
- Leharivel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 14 ans 11 mois #9773
par Leharivel
Réponse de Leharivel sur le sujet Re:Probleme script avec une variable
Bonjour,
j'ai trouver cela:
# debut du while
$deleted = 0
while (???)
{
Get-ChildItem $mydata -include *.* -recurse | Where {$_.LastWriteTime -le \"$lastmod\"} | Remove-Item | out-null
$deleted++
}
# fin du while
Mon but et de supprimer des fichiers dans un dossier ou je ne connais pas le nombre de dossier et de fichier.
La chose qui me manque, qu'elle est la condition que je dois mettre pour que le while arrete de fonctionner
exemple lorsqu'il n'y a plus de fichier à supprimer
j'ai trouver cela:
# debut du while
$deleted = 0
while (???)
{
Get-ChildItem $mydata -include *.* -recurse | Where {$_.LastWriteTime -le \"$lastmod\"} | Remove-Item | out-null
$deleted++
}
# fin du while
Mon but et de supprimer des fichiers dans un dossier ou je ne connais pas le nombre de dossier et de fichier.
La chose qui me manque, qu'elle est la condition que je dois mettre pour que le while arrete de fonctionner
exemple lorsqu'il n'y a plus de fichier à supprimer
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Probleme script avec une variable