Boucle Powershell à travers des dossiers, Créer un fichier dans chaque dossier
j'essaie de boucler de façon récursive tous les dossiers d'un répertoire, puis de faire quelque chose dans chaque répertoire. Créer un fichier texte, par exemple.
je peux obtenir tous les sous-dossier dans une variable, comme ceci:
$folders = Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
cependant, je n'arrive pas à créer un fichier dans chaque sous - répertoire-les fichiers sont créés dans le répertoire supérieur. Cela ne fonctionne pas:
$folders | ForEach-Object { New-Item -ItemType file -Name "$_.txt" -path $_}
Qui renvoie un message d'erreur que le répertoire n'est pas trouvé ou que le chemin est trop long.
Comment faire quelque chose dans chaque sous-répertoire de dossiers imbriqués?
1 réponses
essaye ceci:
Get-ChildItem -Recurse -Directory | ForEach-Object {New-Item -ItemType file -Path "$($_.FullName)" -Name "$($_.Name).txt" }
en gros, le Get-ChildItem
la commande renvoie une séquence de DirectoryInfo
objets. FullName
la propriété contient le chemin complet, alors que Name
contient juste le nom du répertoire de feuilles.