De votre situation, il semble que vous deviez créer un dossier "Revision#" une fois par jour avec un dossier "Reports" à l'intérieur. Si c'est le cas, il vous suffit de savoir quel est le numéro de révision suivant. Écrivez une fonction qui obtient le numéro de révision suivant, Get-NextRevisionNumber. Ou vous pouvez faire quelque chose comme ceci :
foreach($Project in (Get-ChildItem "D:\TopDirec" -Directory)){
# Sélectionnez tous les dossiers de révision du dossier du projet.
$Revisions = Get-ChildItem "$($Project.Fullname)\Revision*" -Directory
# Le numéro de révision suivant sera juste un de plus que le plus grand numéro.
# Vous devez convertir la chaîne dans le premier pipeline en int pour que Sort-Object fonctionne.
# Si vous le triez par ordre décroissant, le premier nombre sera le plus grand, donc vous le sélectionnez.
# Une fois que vous avez le numéro de révision le plus élevé, ajoutez simplement un à celui-ci.
$NextRevision = ($Revisions.Name | Foreach-Object {[int]$_.Replace('Revision','')} | Sort-Object -Descending | Select-Object -First 1)+1
# Maintenant, avec ceci, on fait d'une pierre deux coups.
# Il va créer le dossier "Reports" mais aussi le dossier "Revision#".
New-Item -Path "$($Project.Fullname)\Revision$NextRevision\Reports" -Type Directory
# Passons au dossier du projet suivant.
# Cette boucle d'exemple non testée nécessite la version 3.0 de PowerShell.
}
Installation de PowerShell 3.0.
6 votes
"créer plusieurs dossiers pose problème" - quel genre de problème rencontrez-vous? Vous ne savez pas comment écrire le code? Recevez-vous un message d'erreur? Les dossiers n'apparaissent-ils simplement pas après l'exécution du script? Des problèmes différents nécessitent des solutions différentes.