Ms-Dos - cambiar caracteres a archivo y luego mover a carpeta

 
Vista:
Imágen de perfil de Luis

cambiar caracteres a archivo y luego mover a carpeta

Publicado por Luis (3 intervenciones) el 06/11/2013 02:23:29
buenas noches
necesito su ayuda
tengo cientos de archivos a los que les tengo que cambiar los caracteres de principio y luego mover a su respectiva carpeta
por ejemplo tengo un archivo llamado TR 12345.pdf y tengo que cambiarle los caracteres del principio quedando como OC 12345.pdf, asta aqui todo va bien sin embargo no consigo hacer que ahora el archivo se mueva automaticamente a la carpeta 12345 y asi sucesivamente logre que se cambien de nombre con el siguiente codigo:
@Echo OFF
Setlocal enabledelayedexpansion

Set "FileExt=PDF"
Set "Pattern=TR"
Set "Replace=OC"

FOR %%@ IN ("*%Pattern%*.%FileExt%") DO (
Set "File=%%@"
Ren "%%@" "!File:%Pattern%=%Replace%!"
)


Pause&Exit

necesito que ahora el archivo modificado se mueva a su carpeta cabe señalar que los archivos cambiados y las carpetas destino estan en el mismo subdirectorio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

cambiar caracteres a archivo y luego mover a carpeta

Publicado por Antoni Masana (811 intervenciones) el 06/11/2013 07:10:22
Hola Luis,

Falta un poco más de información.

Piensa que tú ves los datos, los nombres de ficheros y la estructura de directorios pero los demás somos ciegos ante lo que tú tienes y quieres hacer. Es necesario que seas más preciso en la explicación.

En principio puedes utilizar el comando MOVE o en su defecto los comandos COPY y DEL que se parece al anterior pero no es exactamente lo mismo.

Una solución a voz de pronto seria esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Echo OFF
 
Setlocal enabledelayedexpansion
 
Set "FileExt=PDF"
Set "Pattern=TR"
Set "Replace=OC"
 
FOR %%@ IN ("*%Pattern%*.%FileExt%") DO (
    Set "File=%%@"
    Ren "%%@" "!File:%Pattern%=%Replace%!"
    move %Replace%*.%FileExt% 12345\.
)
 
Pause
Exit


Pero ¿Es esto lo que deseas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis

cambiar caracteres a archivo y luego mover a carpeta

Publicado por Luis (3 intervenciones) el 06/11/2013 18:38:54
tienes razon no me explique lo suficiente
el escenario esta asi:
las carpetas origen ya existen con nombres como 12345a, 123456a,1234567a,12345678a
todas diferentes en nombre y longitud de caracteres
ahora los archivos a enviar corresponden en nombre despues del cambio de los primeros caracteres
ejemplo:
antes del cambio despues del cambio carpeta destino
archivo TR 12345a.pdf ---------------->OC 12345a.pdf -------------------->12345a
archivo TR 123456a.pdf -------------->OC 123456a.pdf ------------------->123456a
archivo TR 1234567a.pdf ------------->OC 1234567a.pdf ---------------->1234567a
los nombres con numero consecutivo son solo un ejemplo pueden tener letras intercaladas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

cambiar caracteres a archivo y luego mover a carpeta

Publicado por Antoni Masana (811 intervenciones) el 07/11/2013 07:43:18
Sorprendentemente esto funciona asi

Este primero es una prueba y el segundo es el bueno

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
echo >"TR 12345a.pdf"
echo >"TR 123456a.pdf"
echo >"TR 1234567a.pdf"
 
Setlocal enabledelayedexpansion
 
Set "FileExt=PDF"
Set "Pattern=TR"
Set "Replace=OC"
 
FOR /F "delims=;" %%a in ('dir TR*.pdf /B') do call :Rename "%%a"
GOTO:EOF
 
:Rename
    Set File_Orig=%1
    set Resto=%File_orig:~4%
    set File_Dest=%Replace% %Resto%
    set Dire=%Resto:~0,-5%
 
    echo    Ren  %File_Orig%  "%File_Dest%
    echo    move "%File_Dest%  "%Dire%\."
    echo.
    goto:EOF


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
 
Setlocal enabledelayedexpansion
 
Set "FileExt=PDF"
Set "Pattern=TR"
Set "Replace=OC"
 
FOR /F "delims=;" %%a in ('dir TR*.pdf /B') do call :Rename "%%a"
GOTO:EOF
 
:Rename
    Set File_Orig=%1
    set Resto=%File_orig:~4%
    set File_Dest=%Replace% %Resto%
    set Dire=%Resto:~0,-5%
 
    Ren  %File_Orig%  "%File_Dest%
    move "%File_Dest%  "%Dire%\." >nul
    goto:EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis

cambiar caracteres a archivo y luego mover a carpeta

Publicado por Luis (3 intervenciones) el 07/11/2013 15:30:35
Genial!

lo voy a probar

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar