Quiero cambiar el nombre de nombre de archivo como de»cómocambiar el nombre de-file.jpg» a de»cómoreutilización-file.jpg» mediante un archivo por lotes de Windows

I. e. Yo sólo quiero reemplazar una o dos palabras en un nombre de archivo.

Por favor, añadir que lo ha intentado. También, necesitamos más información.
Considere la posibilidad de probar Bulk Rename Aquí.
hmmm…un poco demasiado estricto mí piensa.

OriginalEl autor Varun | 2013-04-21

2 Comentarios

  1. 42
    @echo off
    
    Set "Filename=how-to-rename-file.jpg"
    Set "Pattern=rename"
    Set "Replace=reuse"
    
    REM Call Rename "%Filename%" "%%Filename:%Pattern%=%Replace%%%"
    
    Call Echo %%Filename:%Pattern%=%Replace%%%
    :: Result: how-to-reuse-file.jpg
    
    Pause&Exit
    

    Te doy otro ejemplo de un bucle de archivos:

    ACTUALIZACIÓN:

    Me he perdido algunas cosas en la sintaxis de la ‘causa de rápido escribir mi última edición, aquí está el código corregido:

    @echo off
    Setlocal enabledelayedexpansion
    
    Set "Pattern=rename"
    Set "Replace=reuse"
    
    For %%# in ("C:\Folder\*.jpg") Do (
        Set "File=%%~nx#"
        Ren "%%#" "!File:%Pattern%=%Replace%!"
    )
    
    Pause&Exit
    

    PS: Se puede leer aquí para aprender más acerca de la subcadena:
    http://ss64.com/nt/syntax-substring.html
    http://ss64.com/nt/syntax-replace.html

    El segundo código es exactamente lo que necesito. Gracias tan mucho por su ayuda. También gracias por pasarme el enlace para aprender más acerca de las cadenas he encontrado este enlace, muy informativo 🙂
    ¿Por qué utilizar Set "File=%%~nx#" en lugar de un simple Conjunto de "File=%%#" ?
    Demaio para introducir A los nuevos usuarios en el reservado Para los modificadores.
    lo siento, pero ¿qué entiende usted por «introducir a los nuevos usuarios»? Lo que los usuarios?
    Todo el mundo que está empezando a aprender, aquellos que vienen aquí en busca de una solución y se encuentra con un código pública.

    OriginalEl autor ElektroStudios

  2. 32

    El código de arriba no cambiar el nombre de los archivos de Las rutas de acceso son un problema y el origen del nombre de archivo es incorrecto.

    Esto va a funcionar en los archivos de la carpeta actual, a excepción de aquellas con ! en los nombres va a ser un problema.

    @echo off
    Setlocal enabledelayedexpansion
    
    Set "Pattern=rename"
    Set "Replace=reuse"
    
    For %%a in (*.jpg) Do (
        Set "File=%%~a"
        Ren "%%a" "!File:%Pattern%=%Replace%!"
    )
    
    Pause&Exit
    
    Sé que este es un viejo tema, pero lo que debo agregar para definir una carpeta en lugar de utilizar la carpeta local?
    Lugar pushd "c:\folder" por encima del bucle, o el uso cd /d "c:\folder"
    Funciona como un encanto! Cosas grandes!
    Sólo una nota, creo que Set "File=%%~a" puede ser reemplazado con Set "File=%%a" (con no ~) porque el ~ se utiliza con un parámetro de extensión que usted no está utilizando. ss64.com/nt/syntax-args.html
    Usted está absolutamente en lo correcto de que la tilda no es necesario, aunque nunca va a causar ningún problema.

    OriginalEl autor foxidrive

Dejar respuesta

Please enter your comment!
Please enter your name here