- forum
- PowerShell
- Entraide pour les initiés
- programme pour lister les fichiers d'un répertorie en doublons dans un Excel.
Question programme pour lister les fichiers d'un répertorie en doublons dans un Excel.
- tomma
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 2 ans 1 mois #32879
par tomma
Bonjour à tous,
Je suis débutant confirmé dans ce langage de programmation.
Mais je rencontre aujourd'hui un problème. J'ai créé un programme, pour faire la liste des fichiers d'un répertoire qui sont >255 caractères.
Mais je souhaiterais le modifier pour qu'à présent, il me donne la liste dans un fichier Excel des fichiers qui sont en doubles.
Quelqu'un pourrait-il m'aider ? Merci beaucoup.
Voici le code que je possède actuellement :
$rep = [string] # répertoire à scanner
$cible = [string] # nom du fichier à créer où sera écrit le résultat de la recherche de fichiers
$nbcarac = 0 # nombre de caractères contenus dans l'URL complète du nom de fichier
Clear-Host
Write-host "=== Script pour lister les fichiers en doubles==="
Write-Host ""
$rep = Read-Host "Veuillez saisir l'URL du répertoire à saisir s'il vous plaît.
exemple : O:\ATOUS\COMMUN\COVID-19\" # saisi de l'URL du répertoire à scanner
Write-Host ""
$cible = Read-Host "Veuillez saisir le nom du fichier où sera écrit le résultat de votre recherche de fichiers. exemple : Liste-fic_+255carac_25112021" # saisi du nom du fichier à créer où sera écrit le résultat de la recherche de fichiers
# définitition du nom de fichier avec son URL et son extension
$cible = ($HOME + "\Desktop\" + $cible + ".csv")
Write-Host ""
Write-host "=== Recherche de fichiers en cours... ==="
# boucle récursive parcourant tous les fichiers du répertoire à scanner
Get-ChildItem $rep -File -Recurse | ForEach {
# récupération de l'URL complète du fichier
$FN = $_.FullName
# calcul du nombre de caractères dans l'URL du fichier
$nbcarac = ($FN | Measure-Object -character | select -ExpandProperty characters)
# si le nombre de caractères est supérieur à 255, j'inscris le nombre de caractères + l'URL du fichier
If($nbcarac -GE 255) {Add-Content -LiteralPath $cible -value $nbcarac"¤"$FN}
}
Write-Host ""
Write-Host "=== Fin du script ==="
Pause
Je suis débutant confirmé dans ce langage de programmation.
Mais je rencontre aujourd'hui un problème. J'ai créé un programme, pour faire la liste des fichiers d'un répertoire qui sont >255 caractères.
Mais je souhaiterais le modifier pour qu'à présent, il me donne la liste dans un fichier Excel des fichiers qui sont en doubles.
Quelqu'un pourrait-il m'aider ? Merci beaucoup.
Voici le code que je possède actuellement :
$rep = [string] # répertoire à scanner
$cible = [string] # nom du fichier à créer où sera écrit le résultat de la recherche de fichiers
$nbcarac = 0 # nombre de caractères contenus dans l'URL complète du nom de fichier
Clear-Host
Write-host "=== Script pour lister les fichiers en doubles==="
Write-Host ""
$rep = Read-Host "Veuillez saisir l'URL du répertoire à saisir s'il vous plaît.
exemple : O:\ATOUS\COMMUN\COVID-19\" # saisi de l'URL du répertoire à scanner
Write-Host ""
$cible = Read-Host "Veuillez saisir le nom du fichier où sera écrit le résultat de votre recherche de fichiers. exemple : Liste-fic_+255carac_25112021" # saisi du nom du fichier à créer où sera écrit le résultat de la recherche de fichiers
# définitition du nom de fichier avec son URL et son extension
$cible = ($HOME + "\Desktop\" + $cible + ".csv")
Write-Host ""
Write-host "=== Recherche de fichiers en cours... ==="
# boucle récursive parcourant tous les fichiers du répertoire à scanner
Get-ChildItem $rep -File -Recurse | ForEach {
# récupération de l'URL complète du fichier
$FN = $_.FullName
# calcul du nombre de caractères dans l'URL du fichier
$nbcarac = ($FN | Measure-Object -character | select -ExpandProperty characters)
# si le nombre de caractères est supérieur à 255, j'inscris le nombre de caractères + l'URL du fichier
If($nbcarac -GE 255) {Add-Content -LiteralPath $cible -value $nbcarac"¤"$FN}
}
Write-Host ""
Write-Host "=== Fin du script ==="
Pause
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 1 mois - il y a 2 ans 1 mois #32881
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet programme pour lister les fichiers d'un répertorie en doublons dans un Excel.
Salut,
une solution basée sur le regroupement de noms de fichier et filtre sur la longueur du path :
A voir avec ta volumétrie, qq milliers de fichiers peuvent être gérés. Tu auras juste un pic d'occupation mémoire.
Pour obtenir l'intégralité des fichiers > à 255 il faut réécrire ce bout de code à l'aide d'instruction if ou d'un switch.
une solution basée sur le regroupement de noms de fichier et filtre sur la longueur du path :
$FilesGroups=Get-ChildItem $rep -File -Recurse | Group-Object Name
#Filtre les groupes ayant plus d'un nom de fichier identique
#Enumére chaque group et filtre ses fichiers ayant une longueur de Path demandé.
$FilesGroups|? {$_.Count -gt 1}|? {$_.Group|? {$_.Fullname.Length -ge 255}}
#$FilesGroups=$null
A voir avec ta volumétrie, qq milliers de fichiers peuvent être gérés. Tu auras juste un pic d'occupation mémoire.
Pour obtenir l'intégralité des fichiers > à 255 il faut réécrire ce bout de code à l'aide d'instruction if ou d'un switch.
Tutoriels PowerShell
Dernière édition: il y a 2 ans 1 mois par Laurent Dardenne.
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les initiés
- programme pour lister les fichiers d'un répertorie en doublons dans un Excel.
Temps de génération de la page : 0.107 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- programme pour lister les fichiers d'un répertorie en doublons dans un Excel.