Massenavnet (Tilføjelse af Suffix/Prefix) af filer rekursivt i Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en mappe med mange undermapper, som har yderligere undermapper. hver mappe har et antal filer.


Jeg vil omdøbe hele filen ved at tilføje nogle suffix til dem


for eksempel:

 Original: FileName1.ext

        Endelig: Suf\_FileName1.ext


For at udføre denne funktion, fundet denne kommando online


 `FOR /R \%x IN (*) DO ren "\%x" Suf\_*`


men dette erstatter de oprindelige tegn i det oprindelige filnavn
ligesom

     Original: FileName1.ext

      Endelig: Suf\_Name.ext


(vær opmærksom på at den har fjernet de oprindelige tegn i det oprindelige filnavn)


Foreslå ændringer/modifikationer i ovenstående kommando,
eller en anden kommando til at udføre funktionen.


Tak på forhånd.

Bedste reference


Når du bruger en for kommando til at gentage over et sæt filer, indeholder den for udskiftelige parameter (\%x i din prøve en henvisning til filen.


Når du bruger \%x i kommandoerne i do -klausulen, erstattes denne parameter med oplysninger om den fil, der behandles, som standard navnet og udvidelsen af ​​filen (når du bruger en simpel for) eller filen med den fulde sti (når du bruger en rekursiv for /R), men du kan bestemme og ændre de oplysninger, du vil bruge. Den udskiftelige parameter tillader brugen af ​​nogle modifikatorer (du kan se hele listen, hvis du udfører for /?)


I dit tilfælde skal du for din omdøbsmaske have navnet og udvidelsen af ​​filen, der refereres (jeg har ændret din \%x med \%F, så syntaksen er klarere)


\%~nxF
 ^^^^.... replaceable parameter
 ||+..... extension of the file referenced
 |+...... name of the file referenced
 +....... operator for modifier usage


Din kommando kunne være noget lignende


for /R \%F in (*) do echo ren "\%F" "Suf\_\%~nxF"



  • note : echo i kommandoen er bare en fejlfinding. Før du ændrer noget, skal du først vise at konsolere de kommandoer, der skal udføres. Hvis udgangen virker korrekt, skal vi kun fjerne echo og køre kommandoen igen.



Husk at hvis du vil bruge kommandoen inde i en batchfil, skal du undslippe procenttegnene i de for udskiftelige parametre ved at fordoble dem. Inde i en batchfil vil den foregående kommando være


for /R \%\%F in (*) do echo ren "\%\%F" "Suf\_\%\%~nxF"