Quelqu'un a-t-il un exemple de script pour récurer un répertoire donné dans un système de fichiers avec Powershell? En fin de compte ce que je veux faire est de créer un script qui va générer des listes de fichiers NSIS pour moi donné un répertoire. Quelque chose de très similaire à ce qui a été fait here avec un script BASH.Récursif du système de fichiers avec Powershell
2
A
Répondre
3
Comme démontré halr9000, vous pouvez utiliser le paramètre de commutateur -recurse
de l'applet de commande Get-ChildItem
pour récupérer tous les fichiers et répertoires sous un chemin d'accès spécifié.
Il semble que le script bash vous lié à votre question enregistre les répertoires aussi bien, voici donc une fonction simple pour revenir à la fois les fichiers et répertoires dans un seul objet de résultat:
function Get-InstallFiles {
param([string]$path)
$allItems = Get-ChildItem -path $path -recurse
$directories = $allItems | ? { $_.PSIsContainer } | % { $_.FullName }
$installFiles = $allItems | ? { -not $_.PSIsContainer } | % { $_.FullName }
$uninstallFiles = $installFiles[-1..-$installFiles.Length]
$result = New-Object PSObject
$result | Add-Member NoteProperty Directories $directories
$result | Add-Member NoteProperty InstallFiles $installFiles
$result | Add-Member NoteProperty UninstallFiles $uninstallFiles
return $result
}
ici est comment vous pouvez l'utiliser pour créer les mêmes fichiers texte d'installation/désinstallation à partir de l'exemple de halr9000, y compris les répertoires de désinstallation:
$files = Get-InstallFiles 'C:\some\directory'
$files.InstallFiles | Set-Content 'installfiles.txt'
$files.UninstallFiles + $files.Directories | Set-Content 'uninstallfiles.txt'
4
Il s'agit d'un port "paraphrase" de ce script bash.
$path = "c:\path\to\program"
$installFiles = "installfiles_list.txt"
$uninstFiles = "uninstfiles_list.txt"
$files = get-childitem -path $path -recurse | where-object { ! $_.psIsContainer } # won't include dirs
$filepath = $files | foreach-object { $_.FullName }
$filepath | set-content $installFiles -encoding ASCII
$filepath[($filepath.length-1)..0] | set-content $uninstFiles -encoding ASCII
Questions connexes
- 1. test de performance du système de fichiers
- 2. Vitesse du système de fichiers iPhone/iPod
- 3. Système de fichiers TreeView
- 4. Système de fichiers TreeView
- 5. Modification du répertoire de base du site IIS6 avec Powershell
- 6. du dans PowerShell?
- 7. Meilleure architecture pour gérer les modifications du système de fichiers?
- 8. Une question sur le cache du système de fichiers
- 9. système de téléchargement de fichiers
- 10. Comment simuler la corruption du système de fichiers ext3?
- 11. Comment déboguer les erreurs de "système d'accès refusé" du système de fichiers sur win32?
- 12. Ajout récursif de fichiers à un référentiel Subversion
- 13. récursif (doall) dans clojure
- 14. Casting de type récursif
- 15. Synchroniser les ensembles SharePoint avec le système de fichiers?
- 16. Étendue du système dans l'analyse du système
- 17. Inclure les fichiers relatifs à PowerShell
- 18. Déploiement d'applications avec Powershell
- 19. Fichiers du système d'équipe VS 2008 ouverts en 2008 standard
- 20. coordonne le problème du système avec jogl
- 21. Système de fichiers en mémoire pour Windows
- 22. Outils de gestion de système de fichiers
- 23. Tree View dans C# avec récursif
- 24. Récursif correctement
- 25. Powershell, WMI et fichiers/dossiers compressés
- 26. Méthode d'interception de l'activité du système de fichiers du processus enfant
- 27. Vim avec Powershell
- 28. Réflexion avec Powershell
- 29. Script Powershell qui extrait des medadata du script powershell
- 30. Java site récursif concurrent télécharger
Est-ce que ma réponse est suffisante? Si oui, veuillez le marquer comme accepté. – halr9000