Hoe kan Ik in windows in een map alle directory namen in een batch veranderen?

naam bestaat uit 3 tekens + "_"+ dag + maand bv. 456_2906 of 457_3006
Het resultaat moet worden een dir naam 2016-06-29 of 2016-06-30
Het zou mogelijk moeten zijn met powershell maar daar kom ik even niet uit.

Weet jij het antwoord?

/2500

Ik kom op het volgende script. Het getal voor de underscore wordt genegeerd, en de aanname is dat dag en maand altijd uit twee cijfers bestaan (dus evt. met voorloopnullen). Het jaar staat vast op 2016. Als die aannames niet goed zijn moet het script natuurlijk anders! Hopelijk is dit wat je zoekt. Hieronder een link waar ik mijn inspiratie opgedaan heb... $startPath = "C:\Temp"; $folderItems = $(get-childitem "$startPath"); foreach( $folder in $folderItems) { if($folder.PSisContainer -and ($folder -imatch "^\d{3}_(\d{2})(\d{2})$") ) { $dag = $matches[1]; $maand = $matches[2]; $newName = "2016-$maand-$dag"; if (-Not (Test-Path $newName)) { Write-Host "Renaming $folder to $newName"; Rename-Item $folder $newName; } else { Write-Host "Skipping $folder because $newName already exists!"; } } else { Write-Host "Ignoring: $folder"; } }

Bronnen:
http://superuser.com/questions/617881/how-...

Deze oneliner: ls -Directory | %{ ren $_ $(($_.name -replace ‘(.*?)_(\d{2})(\d{2})’,‘2016-$3-$2’)) } Doet het volgende: ——————————— PS C:\tmp\z> ls -name -Directory 456_2906 457_3006 PS C:\tmp\z> ls -Directory | %{ ren $_ $(($_.name -replace ‘(.*?)_(\d{2})(\d{2})’,‘2016-$3-$2’)) } PS C:\tmp\z> ls -name -Directory 2016-06-29 2016-06-30 ——————————— NB 1: Als je nog iets met die "456" of "457" wilt, voeg dan in het tweede "-replace" argument (de regex replacement string met backreferences) iets met $1 toe (dat is het resultaat van de eerste capturing group). NB 2: Als er geen directories zijn die aan het eerste argument van de -replace opdracht voldoen (de regex search string) dan komt er een foutmelding. Eventueel error checking toevoegen zoals in het andere antwoord.

Gebruik het gratis programma Totalcommander, hier zit een heel krachtige hernoem tool, die alvorens je het uitvoert het resultaat laat zien i.t.t. bovengenoemde scripts. Je selecteert de desbetreffende directories(inclusief sub directories) en dan CTRL-M en kies je het juiste "file-mask"

Bronnen:
https://www.ghisler.com/

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100