Au préalable vous pouvez désactiver l'arrêt du script si il rencontre une erreur, cad ici si il n'arrive pas à accéder à un répertoire
$ErrorActionPreference = "silentlycontinue" #En cas d'erreur, on ne dit rien et on continu
Lien vers le fichier : cliquez ici
Exemple basique où l'on liste tout à partir de C:\
Get-ChildItem -Path "C:\" -Recurse | %{Write-host $_.FullName}
Lien vers le fichier : cliquez ici
La même chose mais on ne liste que les fichiers, et on ne prend que ceux avec l'extension txt
Get-ChildItem -Path "C:\" -Recurse -File -include "*.txt" | %{Write-host $_.FullName}
Lien vers le fichier : cliquez ici
Voici une aide pour générer une commande de recherche
La même chose mais on écrit le résultat dans un fichier C:\ZZMonFichierensortie.txt au lieu de l'afficher
Get-ChildItem -Path "C:\" -Recurse -File -include "*.txt" | %{ADD-content -path "C:\ZZMonFichierensortie.txt" -value $_.FullName}
Lien vers le fichier : cliquez ici
Ici on écrit dans un fichier la liste des fichiers ainsi que le chemin du répertoire qui le contient
$RepertorieaTraiter = "C:\"
$varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
$currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours
#On ne prend que le nom du script sans l'extention. Pour cela on chercher la position d'un point en partant de la droite et on prend tout ce qui est à sa gauche
$currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany(".")))
#Création du fichier vierge
$EmplacementFichier = "$varCheminRepertoireScript\$($currentScriptName)_Result.txt"
$MonFichier = New-Item -type file $EmplacementFichier -Force
$MesObjets = get-childitem $RepertorieaTraiter -Recurse
#get-childitem "C:\" -Recurse
foreach ($UneLigne in $MesObjets){
#$UneLigne |gm
#Write-Host "$($UneLigne.Name), $($UneLigne.FullName), $($UneLigne.PSParentPath)"
#Write-Host $UneLigne.FullName
$MyLine = "$($UneLigne.Name)`t$($UneLigne.FullName)" #`t$($UneLigne.PSParentPath)"
add-content $MonFichier $MyLine
}
Lien vers le fichier : cliquez ici