Page 1 sur 1

[PowerShell] Voir les doublons dans un script

Posté : sam. 13 juil. 2024 12:32
par acideburn
S@lut à tous/tes

C'est un script Powershell qui montre tout les doublons dans un script (Testé sur Windows 10 LTSC)

Le code

Code : Tout sélectionner

# Chemin vers votre script
$filePath = "chemin.cmd" # Le chemin complet de votre script

# Lire le contenu du fichier avec les numéros de ligne et exclure les lignes vides
$commands = Get-Content -Path $filePath | Where-Object { $_.Trim() -ne "" } | ForEach-Object { [PSCustomObject]@{ LineNumber = $_.ReadCount; Command = $_ } }

# Tableau pour stocker toutes les lignes avec les numéros de ligne
$allCommands = @()

# Itérer à travers chaque ligne du fichier et stocker dans $allCommands
foreach ($command in $commands) {
    $allCommands += $command
}

# Identifier les lignes dupliquées
$duplicateCommands = $allCommands | Group-Object Command | Where-Object { $_.Count -gt 1 }

# Afficher les lignes dupliquées avec le numéro de ligne
if ($duplicateCommands) {
    Write-Host "Les lignes suivantes sont dupliquées dans ${filePath} :"
    $duplicateCommands | ForEach-Object {
        $_.Group | ForEach-Object {
            Write-Host "Ligne $($_.LineNumber) : $($_.Command)"
        }
        Write-Host "----------"
    }
} else {
    Write-Host "Aucune ligne dupliquée trouvée dans ${filePath}."
}

# Vérifier si le script est exécuté dans PowerShell ISE
if ($psISE) {
    # Message pour PowerShell ISE
    Write-Host "Exécution dans PowerShell ISE. Le script est terminé."
} else {
    # Laisser le message de résultat affiché à l'écran dans PowerShell standard
    Write-Host "Appuyez sur une touche pour fermer..." -ForegroundColor Green
    [System.Console]::ReadKey() | Out-Null
}

Que fait le script :
  • Montre tout les doublons d'un script
  • Montre le numéro de ligne et sans les espaces vides
  • Peut s'executer a la fois dans PowerShell standard et PowerShell ISE
Comment s'en servir ?
  1. Creer un fichier texte .txt peu importe le nom et enregistrer le code dedans en modifiant l'extension par .ps1 par exemple "doublons.ps1"
  2. Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell ou l'ouvrir si l'on souhaite avec Powershell ISE pour voir les éventuelles erreurs
  3. Appuyez sur n'importe quelle touche pour fermer le script