Donnerstag, 28. Februar 2013

Mit PowerShell Ordner in der Masse umbenennen

Heute hatte ich wieder eine kleine Herausforderung im DSM Umfeld. Wegen einem Konfigurationsfehler in der Distribution wollte der zentrale Dienst alle Projekte im Master Repository löschen. DSM löscht ja dann nicht sofort die Verzeichnisse sondern benennt dieses erst einmal um. Dieses Sicherheitsfeature hat in unserem Fall gut getan. Allerdings hatte ich dann 180 Ordner die in etwas so hießen "todelete.0876-3456.1223". "1223" ist hierbei der ursprüngliche Ordnername.

Das unten stehende PowerShell Script nimmt dann alle Ordner die mit todelete anfangen und schneidet alles vor dem zweiten Punkt ab. Somit wurde jeder Ordner wiederhergestellt. Dabei muss der PowerShell Pfad/Fokus auf das Paketverzeichnis zeigen, also \Work\Master\Projects.

###################################################################
# Rename all Folder
# from todelete.0873-4567.8347 to 8347
###################################################################


$folder = Get-ChildItem -Filter todelete* | Split-Path -Leaf
foreach($name in $folder)
    {
    $newname = $name.Split('.')[2]
    Rename-Item $name $newname #-WhatIf
    }

 
Mit diesem Script werden die Ordner in wenigen Milisekunden umbenannt. Danach den Distributionsdienst neu gestartet und schon war alles wieder Funktionsfähig.


Keine Kommentare:

Kommentar veröffentlichen