Crear archivos desde batch [Solucionado]

Iniciado por romanjr, 16 Febrero 2011, 02:02 AM

0 Miembros y 1 Visitante están viendo este tema.

romanjr

hola amigos soy nuevo en este foro y me parece una gran opcion para los que estamos en el medio del desarrollo ademas he leido varios de sus post y me han servido much.

tengo una pregunta para ustedes, si alguien pudiera ayudarme se los agradeceria mucho.

tengo una serie de archivos jpg:

CRUCERO 1-BJ04.jpg
CRUCERO 2-BJ04.jpg
...
...
...
CRUCERO N-BJ04.jpg

la cantidad de archivos varian segun los contenidos

ahora ... cuento con un solo archivo: "cualquiermapa.jpg" ese archivo quiero copiarlo cuantas n veces existan los crucero*.jpg con el mismo nombre de ellos pero con el prefijo "map_"
es decir de uno solo cualquiermapa.jpg tener como resultado:


CRUCERO 1-BJ04.jpg  y map_CRUCERO 1-BJ04.jpg (copia de "cualquiermapa.jpg")
CRUCERO 2-BJ04.jpg  y map_CRUCERO 2-BJ04.jpg (copia de "cualquiermapa.jpg")
...                              y map_.... (copia de "cualquiermapa.jpg")
...                              y map_.... (copia de "cualquiermapa.jpg")
CRUCERO N-BJ04.jpg  y map_CRUCERO 1-BJ04.jpg (copia de "cualquiermapa.jpg")

creo que se puede hacer con el comando copy y ren pero no se como hacerlo

alguna idea????
gracias por su ayuda





leogtz

Suponiendo que tenemos el batch en la misma carpeta que los .jpg:

Código (dos) [Seleccionar]
@echo off

for /f "tokens=*" %%_ in ('dir /B *.jpg') do (call:rename "%%~_")
goto:eof

:rename
rename "%~1" "map_%~1 (copia de "cualquiermapa.jpg")"


Por cierto, no he entendido bien a esta duda, sino funciona hazmelo saber.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

romanjr

#2
Leo... eres grande entre los grandes  ;-).... efectivamente no me explique bien en mi pregunta, sin embargo gracias a tu codigo logre hacer lo que queria, ahi te va la explicacion yepero poderme expresar correctamente:

supongamosque en mi carpeta tengo los siguientes archivos:

mapa_cru1.jpg
CRUCERO 1-BJ04.jpg
CRUCERO 2-BJ04.jpg
CRUCERO 3-BJ04.jpg
CRUCERO 4-BJ04.jpg
CRUCERO 5-BJ04.jpg
... (asi hasta)
CRUCERO nnn-BJ04.jpg

yo queria que mapa_cru1.jpg se copiara todas las veces que existiera un CRUCERO*.jpg con su respectivo  nombre pero anteponiendo map_
para otener como resultado :

mapa_cru1.jpg

CRUCERO 1-BJ04.jpg
CRUCERO 2-BJ04.jpg
CRUCERO 3-BJ04.jpg
CRUCERO 4-BJ04.jpg
CRUCERO 5-BJ04.jpg
... (asi hasta)
CRUCERO nnn-BJ04.jpg

map_CRUCERO 1-BJ04.jpg
map_CRUCERO 2-BJ04.jpg
map_CRUCERO 3-BJ04.jpg
map_CRUCERO 4-BJ04.jpg
map_CRUCERO 5-BJ04.jpg
... (asi hasta)
map_CRUCERO nnn-BJ04.jpg

es decir, tener los archivos originales mas una copia de mapa_cru1.jpg pero con el nombre de cada uno de ellos y anteponiendole map_

y si sigo sin explicarme ahi te va el codigo ya terminado y probado:

Código (dos) [Seleccionar]
@echo off

for /f "tokens=*" %%_ in ('dir /B *.jpg') do (call:copiar "%%~_")
goto:eof

:copiar
copy "mapa_cru1.jpg" "map_%~1"

espero que ahora si se entienda, gracias  atu codigo pude lograrlo, tu dices que queres ya que estoy en deuda contigo ;-)

gracias y saludos

ps. si se califican las respuestas dime como se hace para ponerte todas las que pueda




leogtz

Cita de: romanjr en 16 Febrero 2011, 06:38 AM

ps. si se califican las respuestas dime como se hace para ponerte todas las que pueda


Me conformo con que me digas ¿para qué usas estos Batch?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

romanjr

ok te contesto, trabajo con sistemas arc-gis y mapserver, en este tipo de aplicaciones se pueden ligar puntos georeferenciados a documentos html donde mostramos imagenes de los sitios, (tipo google map) pero para cosas y lugares muy especializados.

entonces los archivos tecnicos que envian son imagenes y tenemos que crear a partir de ellas (es decir con su nombre como identificador) imagenes de mapas y los htmls correspondientes pero poniendo banderas para identificar el tipo de archivo que son:

*.jpg --> info. tecnica
map_*.jpg --> mapas
code_*.html --> htmls

con esto, un script en python enlaza a los mapas y puntos localizados, pero son cientos de de ellas y hacerlas una a una es muy tardado.

se que se pueden usa bases de datos tipo posgre sql o mysql y programar en php pero todavia no aceptan esas propuestas por muchas cuestiones, asi que debemos de hacer solo htmls, por cierto ya me salio otra duda con esos archivos html pero la posteare en otro aviso que se que podras aclararme por lo que he estado leyendo en el foro.

mientras, otra vez gracias y estoy para servirte