« PowerShell/Fichier » : différence entre les versions

Aller à la navigation Aller à la recherche
Ligne 63 : Ligne 63 :
Ce script génère un tableau des dossiers, nombre de fichiers et taille totale, avec tri du plus grand au plus petit.
Ce script génère un tableau des dossiers, nombre de fichiers et taille totale, avec tri du plus grand au plus petit.
<source>
<source>
$DossierSource = "D:\raccourcis"
$DossierSource = "C:\Support"


# Ne liste que les dossiers de premier niveau
# Ne liste que les dossiers de premier niveau
Ligne 76 : Ligne 76 :


     [pscustomobject]@{
     [pscustomobject]@{
         Répertoire = $Dossier
         Répertoire     = $Dossier
         Nombre_fichier = $FichierNombre
         Nombre_fichier = $FichierNombre
         Taille_MB = "{0:N2}" -f ($Taille/1MB)
         Taille_MB     = "{0:N2}" -f ($Taille/1MB)
         Taille_GB = "{0:N2}" -f ($Taille/1GB)
         Taille_GB     = "{0:N2}" -f ($Taille/1GB)
         Rapport_MB = "{0:N2}" -f ($Rapport/1MB)
         Rapport_MB     = "{0:N2}" -f ($Rapport/1MB)
     }
     }
} |  
} |  
Sort-Object Rapport_MB -Descending |  
Sort-Object Rapport_MB -Descending |  
FT  
FT  
#| Export-CSV -path C:\support\raccourcis-liste-20230403.csv -Delimiter ";"  
#| Export-CSV -path C:\support\raccourcis-liste-20230403.csv -Delimiter ";"
</source>
</source>


== Voir aussi ==
== Voir aussi ==
* &nbsp;
* &nbsp;

Version du 4 avril 2023 à 21:32

Script de nettoyage de contenu de fichier

# Traitement de texte sur fichier brut (enlever les lignes qui contiennent les mots ou expressions indiquées) ; le nouveau fichier est "fichier2.txt"
# l'expression "^[?]" indique une ligne commençant par un point d'interrogation.
# la barre verticale sépare les expressions recherchées ; les espaces sont pris en compte.
$fichier = get-content "c:\tmp\scores.txt" | where {$_ -notmatch "^[?]|putain|bite|caca| cul| chauve| mere"}
set-content fichier2.txt $fichier

Script de suppression de fichier

# Auteur : Ph. Page
# Création : 01/12/2021
# Modification :
#
# Script de suppression de fichiers de façon récursive !
#

Clear-Host

$CheminListe = @(
    'C:\test\dossier1',
    'C:\test\qcm',
    'C:\test\Rufus'
    )

Clear-Host
Write-Host "Demande de confirmation de suppression des fichiers des dossiers suivants :"
Write-host $CheminListe -Separator "`n"

$Reponse = Read-Host "`nEtes-vous sûr de cette action ? (O/N)"
if ($reponse -eq "O") {
    Write-Host "`n==> Traitement lancé..."
    foreach ($Chemin in $CheminListe) {
        if (Test-Path $Chemin) {
            Get-ChildItem -file -recurse -Force -path $chemin | Remove-Item
            #Get-ChildItem -file -recurse -Force -path $chemin
        }
        else {
            Write-Host "`tLe dossier suivant n'existe pas ! $Chemin"
        }
    }
    Write-Host "==> Traitement terminé."
}
else {
    Write-Host "Traitement non lancé."
}

Résultat :

Complément

Liste des dix plus gros fichiers, tri décroissant :

  • Get-ChildItem -file *.vhdx -recurse | sort Length -descending | select -first 10 | Select-Object Name, @{Name="Mo";Expression={$_.Length / 1MB}}

Liste des dix plus gros fichiers, tri décroissant, avec mise en forme des valeurs numériques en Mo et 3 chiffres après la virgule :

  • Get-ChildItem -file *.* -recurse | sort Length -descending | select -first 10 | Select-Object -property Name, @{Label="Mo";Expression={"{0:N3}" -f ($_.Length / 1MB)}}

Script de liste de dossiers, nombre de fichier et taille

Ce script génère un tableau des dossiers, nombre de fichiers et taille totale, avec tri du plus grand au plus petit.

$DossierSource = "C:\Support"

# Ne liste que les dossiers de premier niveau
$DossierListe = Get-ChildItem -Directory -Path $DossierSource -Depth 0

$DossierListe |
ForEach-Object {
    $Dossier = $_.FullName
    $FichierNombre = (Get-ChildItem -Path $Dossier -Recurse -File).count
    $Taille = (Get-ChildItem -Path $Dossier -Recurse -File | Measure-Object -Property Length -Sum).Sum
    $Rapport = $Taille/($FichierNombre + 1)

    [pscustomobject]@{
        Répertoire     = $Dossier
        Nombre_fichier = $FichierNombre
        Taille_MB      = "{0:N2}" -f ($Taille/1MB)
        Taille_GB      = "{0:N2}" -f ($Taille/1GB)
        Rapport_MB     = "{0:N2}" -f ($Rapport/1MB)
    }
} | 
Sort-Object Rapport_MB -Descending | 
FT 
#| Export-CSV -path C:\support\raccourcis-liste-20230403.csv -Delimiter ";"

Voir aussi

  •