windows - .Batch omdøbe flere filer

Indlæg af Hanne Mølgaard Plasc

Problem



Hej, jeg har denne kode i .batch:


@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=C:Usersleandro.batistaDesktop
eni"
FOR /f "delims=" \%\%a IN ('dir /b /a-d "\%sourcedir\%*.pdf" ') DO (
 SET "csvname=\%\%~na"
 IF NOT "!csvname:*\_=!"=="!csvname!" (
  CALL :finddate

    REN *.pdf !csvname!.pdf 
    PAUSE
)
)


GOTO :EOF
:finddate
IF /i "\%csvname:~-13\%"=="" SET "csvname=\%csvname:~0,-13\%" 
IF "\%csvname:*\_=\%"=="\%csvname\%" SET "csvname=\%csvname:~0,13\%"&GOTO :EOF  
SET "csvname=\%csvname:*\_=\%"
GOTO finddate


Så ja, nu vil jeg forklare, jeg har: finddate, der uddrag en del af filnavnet, og så bruger jeg det i Loop for at omdøbe filerne.

Hvad jeg laver, omdøber flere filer i samme mappe, men jeg har det problem, at det ikke omdøber flere filer, det omdøber bare mig 1 fil og forlader derefter de andre og siger, at en fil med samme navn allerede eksisterer, så jeg tror, ​​at min sløjfe ikke fungerer som jeg vil have det til at fungere.


Filnavnet eksempel er dette:


AAA\_BBB\_CCC\_DDD\_01\_M73N\_(REC9ago2017) BLA BLA BLA BLA BLA BLA 1008.pdf


Jeg ville have brug for hjælp til dette problem.

Bedste reference


Jeg løste problemet takket være @LotPings.


Jeg gjorde netop dette i REN-linjen:


REN "\%\%a" "!csvname!.pdf"