Ms-Dos - movimientos de documentos

   
Vista:

movimientos de documentos

Publicado por zoila (2 intervenciones) el 09/12/2008 03:01:30
hola a todos

quiero mover archivos de una carpeta de paso a otra de respaldo mediante un bat. el problema es que no busco la manera de que no se reemplazen los que ya existen.

ejemplo

pasojardines.pps moverlo a respaldo, dentro de respaldo en ocasiones hay alguno con el mismo nombre y se reemplaza ya que el bat que tengo corre automaticamente.

los nombres no tienen puntos, ni espacios, quisiera respaldqarlos de esta forma

si hay alguno de jardines no se remplaze y le agregue un numero al final es decir jardines1.pps si mas adelante ya existieran pasara otro de jardines automaticamente le agregue un digito para que no se reemplaze y asi sucesivamente. lo malo que son muchos nombres diferentes.

gracias de antemano por la ayuda que me proporcionen

saludos
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
información
Otras secciones de LWP con contenido de Ms-Dos
- Cursos de Ms-Dos
- Temas de Ms-Dos
información
Cursos y Temas de Ms-Dos
- Comandos de Ms-Dos
- Notas de Ms-Dos
- Tutorial Sobre el Mouse

RE:movimientos de documentos

Publicado por amparitohijo (94 intervenciones) el 09/12/2008 14:52:26
Buenas.

Una forma de hacerlo más práctica sería, si existe el archivo "Jardines.pps", que el nuevo archivo lo llame "Jardines_yyyymmdd.pps", donde yyyy=año, mm=mes y dd=dia.
Así evitas el problema de tener que realizar muchas comprobaciones, y con un script sencillo, poder copiarlos todos. Te pongo un ejemplo, a ver si esto te aclara más:

REM Esta linea sirve para definir la variable
FOR /f "eol=; tokens=1,2,3,4* delims=/, " %%i in ('date /t') DO set yyyymmdd=%%i%%j%%k

for /f (TOKENS=1,2 DELIMS=. ) %%a in ('dir /b C:Origen*.*') DO (if exist C:Backup\%%a.%%b ( copy /Y C:Origen\%%a_%yyyymmdd%.%%b C:Backup ) ELSE ( copy /y C:Origen\%%a.%%b C:Backup ) )

Te advierto de que no lo he probado, pero me imagino que debe funcionar.

Si todavía quieres que te cambie el nombre del archivo con un numero al final, habría que replantear el script. Es bastante más complicado de lo que parece, y así de pronto no se me ocurre. Habría que pensarlo.... y hoy estoy un poco perezoso...

Responde y cuentanos que tal te fue.

Salu2
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

RE:movimientos de documentos

Publicado por Armando Nava  (195 intervenciones) el 09/12/2008 23:53:52
Antes que nada, un saludo para Amparito.

Ya alguien más había hecho este tipo de consulta, he aqui mi solución

Son dos archivos:

copia te crea la lista de archivos a transferir y te llama un archivo auxiliar que te prepara y copia el archivo a transferir. Si no encuentra el nombre del archivo en el directorio de respaldo, lo copia tal cual, y si existe le añade un prefijo, aunque tambien se podría trabajar para agregarlo al final, pero esa es otra historia, no muy dificil.

copia.bat
--------------------------------
echo off
dir /B *.txt>lista.dat
FOR /F "tokens=1" %%a in (lista.dat) DO call checa.bat %%a
del lista.dat
pause
---------------------------------

checa.bat
----------------------------------
SET /A HORA=%TIME:~0,2%
SET /A MINUTO=%TIME:~3,2%
SET /A m_max=%TIME:~3,1%
SET /A m_min=%TIME:~4,1%

if %m_max% EQU 0 SET /A PRE=%HORA%0%M_min%
if %m_max% NEQ 0 SET /A PRE=%HORA%%MINUTO%
ECHO %PRE%

IF EXIST D:ANLArmando est_bat espaldo\%1 (copy %1 D:ANLArmando est_bat espaldo\%PRE%%1 )

IF NOT EXIST D:ANLArmando est_bat espaldo\%1 (copy %1 D:ANLArmando est_bat espaldo\%1 )
----------------------------------

copia.bat debe correr dentro del directorio a respaldar.

Debes sustituir

D:ANLArmando est_bat espaldo

por

La ruta donde deseas respaldar

Si quieres que tu archivo quede como

NOMBRE(NUMERO).EXTENSION

SET nom=%~n1
SET exten=%~x1

IF EXIST D:ANLArmando est_bat espaldo\%1 (copy %1 D:ANLArmando est_bat espaldo\%nom%%PRE%.%exten%
)

La desventaja es que cada que lo ejecutes tendras una nueva copia hayas actializado el archivo o no.

Espero te sirva.
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

RE:movimientos de documentos

Publicado por zoila (2 intervenciones) el 11/12/2008 03:56:09
saludos

probe ambas opciones y francamente no me funciono ya que no movio ni copio los archivos

gracias por su apoyo y espero me pueden ayudar a resolver mi problema
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

RE:movimientos de documentos

Publicado por amparitohijo (94 intervenciones) el 11/12/2008 10:38:07
Buenas.

Yo he hecho pruebas con los scripts de Armando, y funcionan a la perfección (gracias de nuevo, Armando!), aunque creo que el problema es que este foro se come las barras y algunos caracteres más...

Si sabes la nomenclatura de los comandos y el "lenguaje" de programación en batch, haz un copy-paste y repasa las rutas.

Te aseguro que funciona. Si sigues teniendo problemas, te puedo mandar por mail los scripts de Armando ya hechos, sólo que tendrás que editarlos para ponerle las rutas...

Ya nos contarás. Salu2
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

RE:movimientos de documentos

Publicado por ZOILA (1 intervención) el 13/12/2008 04:35:49
MIS ESTIMADOS

YA HE ESTUDIADO Y REALIZADO PRUEBAS CON LOS DATOS QUE ME PROPORCIONARON Y NINGUNO LE BUSQUE EL ERROR DE PORQUE NO FUNCIONA. ESTUVE REVISANDO VARIAS MUESTRAS SIMILARES QUE TIENEN EN EL FORO Y AUN ASI NO PUDE SOLUCIONARLO
AGRADEZCO SI ME PUEDEN ENVIAR POR EMAIL LOS SCRIPT, MANDEMELO POR FAVOR AL CORREO zoila1985@live.com.mx.
AGRADESCO SU AYUDA YA LES COMENTARE COMO QUEDO APENAS LO RECIBA
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