Tengo algunos archivos como AAA_a001.jpg, BBB_a002.jpg, CCC_a003.jpg en Windows 7
y estoy tratando de utilizar por lotes para cambiar el nombre de estos archivos para a001_AAA.jpg, a002_BBB.jpg, a003_CCC.jpg.

Sólo para el intercambio de contenido entre _.

He estado buscando por un tiempo, pero aún no sabes cómo hacer esto.
Alguien puede ayudar?
Gracias.

OriginalEl autor yuchien | 2012-12-23

5 Comentarios

  1. 6
    @echo off
    pushd "pathToYourFolder" || exit /b
    for /f "eol=: delims=" %%F in ('dir /b /a-d *_*.jpg') do (
      for /f "tokens=1* eol=_ delims=_" %%A in ("%%~nF") do ren "%%F" "%%~nB_%%A%%~xF"
    )
    popd
    

    Nota: El nombre se divide en la primera aparición de _. Si un archivo se denomina «part1_part2_part3.jpg», entonces se cambiará el nombre de «part2_part3_part1.jpg»

    Esto es exactamente lo que necesito. Gracias!!
    todavía un problema menor: swap «.jpg» demasiado. Ex. part1_part2.jpg => part2.jpg_part1 Orz
    Funciona a la perfección para mí: part1_part2.jpg –> part2_part1.jpg

    OriginalEl autor dbenham

  2. 30

    Uso REN Comando

    Ren es para rename

    ren ( where the file is located ) ( the new name )
    

    ejemplo

    ren C:\Users\&username%\Desktop\aaa.txt bbb.txt
    

    va a cambiar aaa.txt a bbb.txt

    Su código será :

    ren (file located)AAA_a001.jpg a001.AAA.jpg
    
    ren (file located)BBB_a002.jpg a002.BBB.jpg
    
    ren (file located)CCC_a003.jpg a003.CCC.jpg
    

    y así sucesivamente

    IT WILL NOT WORK IF THERE IS SPACES!
    

    Espero que ayude 😀

    just to swap the content between '_' Hacer entender cuál es la pregunta?
    Sé que debo usar ren para cambiar el nombre del archivo, pero mi problema es que no sé cómo hacer esas manipulaciones de cadenas Orz
    En realidad, no :/ por Favor, utilice un buena explicación de intercambiar el contenido?
    Hay un patrón que va como PART1_PART2.EXT y el OP quiere cambiar el nombre de todos los archivos en un directorio determinado a PART2_PART1.EXT. Supongo 😛
    Deberías corregir el título y la pregunta…. estás haciendo que la gente confuso…

    OriginalEl autor Itsproinc

  3. 6

    como Itsproinc dijo, el REN comando funciona!

    pero si su ruta de acceso del archivo/nombre tiene espacios, el uso de comillas » «

    ejemplo:

    ren C:\Users\&username%\Desktop\my file.txt not my file.txt
    

    agregar » «

    ren "C:\Users\&username%\Desktop\my file.txt" "not my file.txt"
    

    espero que ayude

    OriginalEl autor M.S.M.

  4. 1

    Estoy asumiendo que usted sabe la longitud de la pieza antes de la _ y después el subrayado, así como de la extensión. Si usted no podría ser más compleja que una simple subcadena.

    cd C:\path\to\the\files
    for /f %%a IN ('dir /b *.jpg') do (
    set p=%a:~0,3%
    set q=%a:~4,4%
    set b=%p_%q.jpg
    ren %a %b
    )
    

    Me acaba de llegar con este script, y yo no probarlo. Echa un vistazo este y que para obtener más información.

    SI quieres asumir que usted no sabe las posiciones de la _ y de la duración y la extensión, creo que se podría hacer algo con bucles para comprobar el índice de la _, a continuación, el último índice de la ., envuélvalo en una goto cosa y hacer que funcione. Si usted está dispuesto a ir a través de ese problema, te sugiero que utilice WindowsPowerShell (o Cygwin) al menos (por su propio bien) o instalar un más avanzado de lenguaje de secuencias de comandos (creo que Python/Perl) vas a obtener más apoyo de cualquier manera.

    OriginalEl autor jadkik94

  5. 0

    Me cambie el nombre en código de

    echo off
    
    setlocal EnableDelayedExpansion
    
    for %%a in (*.txt) do (
        REM echo %%a
        set x=%%a
        set mes=!x:~17,3!
    
        if !mes!==JAN (
            set mes=01
        )
    
        if !mes!==ENE (
            set mes=01
        )
    
        if !mes!==FEB (
            set mes=02
        )
    
        if !mes!==MAR (
            set mes=03
        )
    
        if !mes!==APR (
            set mes=04
        )
    
        if !mes!==MAY (
            set mes=05
        )
    
        if !mes!==JUN (
            set mes=06
        )
    
        if !mes!==JUL (
            set mes=07
        )
    
        if !mes!==AUG (
            set mes=08
        )
    
        if !mes!==SEP (
            set mes=09
        )
    
        if !mes!==OCT (
            set mes=10
        )
    
        if !mes!==NOV (
            set mes=11
        )
    
        if !mes!==DEC (
            set mes=12
        )
    
        ren %%a !x:~20,4!!mes!!x:~15,2!.txt 
    
        echo !x:~20,4!!mes!!x:~15,2!.txt 
    
    )
    

    OriginalEl autor jimra

Dejar respuesta

Please enter your comment!
Please enter your name here