Omdøb stor mængde filer ved hjælp af en modsløjfe i undermapper med en batchfil - Windows 7

Indlæg af Hanne Mølgaard Plasc

Problem



I Windows 7 har jeg en mappe, der kun indeholder undermapper og ingen filer. I undermapperne har jeg en flok .dcm-filer (medicinske billeder). Filerne i hver undermappe har samme navn, og jeg vil have, at de alle har forskellige navne, mere specifikt, jeg vil have navnene til ordre 1.dcm, 2.dcm, 3.dcm osv.


Aktuel situation :
Mapper A, B og C, og hver mappe indeholder File1.dcm, File2.dec, File3.dcm
Vil gerne have dette :
Mappe A indeholder filer 1.dcm, 2.dcm, 3.dcm
Mappe B indeholder filer 4.dcm, 5.dcm, 6.dcm
Mappe C indeholder filer 7.dcm, 8.dcm, 9.dcm


Er der mulighed for at skrive en batchfil, der går ind i hver undermappe i rækkefølge og omdøber filerne i numerisk rækkefølge? Jeg er meget nybegynder når det kommer til at skrive script til Windows og har ingen idé om, hvordan man skal gøre ved at gøre dette. Jeg fandt kode, der ændrer filudvidelser i undermapper, men intet der gør hvad jeg leder efter.


Enhver hjælp er meget værdsat!

Bedste reference


@Echo off
For /f "tokens=1* delims=:" \%\%A in (
  'Dir /B/S/ON/A-D "X:path	ofolder*.dcm" ^|findstr /N /V "^$"'
) Do Echo Ren "\%\%~fB" "\%\%A\%\%~xB"


Hvis output virker ok, fjernes ekkoet i den sidste linje.

Hvis du har tal med forskellig længde i en mappe, skal du være opmærksom på, at sortering efter navn vil have 10 før 2.





For bedre at forstå nogle forklaringer:


Dir/B/S/ON/A-D 'X: \ bane \ til \ mappe * .dcm'

  / B er format

  / S ubdtree recurse

  / O rder af N ame

  / En ttribute - (ikke) D Irectory


Findstr/N/V '^ $'

  / N umber hver outputlinje afgrænse med et kolon.

  /i V erse kampen

   '^ $' Reg ular Ex tryk, der betyder en tom linje

    ^ svarer til begyndelsen af ​​en linje

    $ matcher slutningen af ​​en linje


For/f 'tokens=1 * delims =:' \%\% A i ('kommando') gør

  Analyserer output fra 'comand' til tokens 1=\%\% A og *=hvile i \%\% B

  afgrænsningen : bruges kun til token 1,

  token 2 tager resten af ​​linjen (vigtig for at bevare drevet kolon)


Den vars \%\% A og \%\% B sendes til do (del)


Den for vars kan modfied med ~ modifikatorer se For /?

  \%\% ~ fB ~ f betyder fuldnavn inklusive dirve og sti,

  \%\% A \%\% ~ xB ~ x er forlængelsen fra \%\% ~ xB inklusive prikken