[PowerShell] Voir les doublons dans un script

Vous trouverez ici des scripts pour faciliter la gestion de votre ordinateur. Ils sont proposés tels quels par le rédacteur du message. La team ne vérifie pas la qualité de ces éléments et n'assure pas le support ni la maintenance. Vous les utilisez sous votre seule responsabilité.
Règles du forum
Pour les créateurs de scripts

Veuillez noter que les scripts que vous partagez ici sont proposés tels quels et la team ne vérifie pas leur qualité.
Nous vous rappelons que nous n'assurons ni le support ni la maintenance des scripts publiés.

Pour faciliter leur utilisation par les autres membres de la communauté, respectez ces consignes :
.
  • Utilisez les préfixes de langage pour taguer les messages.
  • Assurez-vous que vos scripts sont clairs et bien documentés
.
Merci de votre compréhension et de votre contribution.
Répondre
Avatar du membre
acideburn
Membre VIP
Membre VIP
Messages : 344
Enregistré le : lun. 6 mai 2024 14:05
A remercié : 102 fois
A été remercié : 162 fois
    Linux Firefox

[PowerShell] Voir les doublons dans un script

Message 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
Répondre