Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: sr_corsario en 9 Noviembre 2009, 12:46 pm



Título: [Solucionado] Renombrar un archivo con el contenido de otro.
Publicado por: sr_corsario en 9 Noviembre 2009, 12:46 pm
Buenas. Necesitaria hacer esto en batch

Tengo esta situación:

Archivo 1.txt
Archivo 2.txt -->El contenido de este archivo quiero que sea el nombre del archivo 1.txt


Por ej esi en 2.txt tengo "Hello world" quiero que el archivo 1.txt cambie a nombre "Hello world.txt"

No necesito que verifique si el nombre es demasiado largo.



EDit: Había pensado en algo parecido a esto: (Aunque se que no es correcto)

Código:

set /p name=&type 2.txt
rename 1.txt %name%.txt





Gracias


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: <ИΘZIЭ(ŦB> en 9 Noviembre 2009, 14:50 pm
Una pregunta: tu "archivo2.txt" tiene cuantas líneas? Solo contiene el texto que quieres usar para renombrar el "archivo1.txt", o tiene algo más?
Si tiene una sola se podría hacer como propusiste, pero usando un FOR. Fíjate:

Código:
For /f "useback tokens=*" %%R in ('type "Archivo2.txt"') do (ren "Archivo1.txt" "%%R")

Eso funcionaría en caso de que el texto en "Archivo2.txt" ya tenga un nombre válido de archivo con extensión y todo. Si no es así, tendrías que adjuntar la extensión tú:
Código:
ren "Archivo1.txt" "%%R.txt"

Ahora bien, debes saber que si "Archivo2.txt" tiene más de una línea de texto el nombre final del "Archivo1.txt" será el de la última línea. Por eso te hacía la pregunta. Ve si te sirve eso.


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: sr_corsario en 9 Noviembre 2009, 14:57 pm
 ;-)
Muchisimasss gracias!!!! ya estaba desesperado...

Si. el archivo solo tiene una sola linea. Ahora mismo voy a probar.

GRacias!!

Edit: Lo acabo de probar y algo me falla. El resultado es:

"Archivo1.txt" se renombra a "type Archivo2.txt"

Alguna idea?


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: <ИΘZIЭ(ŦB> en 9 Noviembre 2009, 15:30 pm
Qué raro! Intenta cambiando el comando TYPE por SORT < "Archivo2.txt". Debería quedarte así:

Código:
For /f "useback tokens=*" %%R in ('sort < "Archivo2.txt"') do (ren "Archivo1.txt" "%%R.txt")

Pruébalo así a ver. Sino funciona dime y luego pruebo en la computadora. Ahorita te estoy respondiendo desde el celular.


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: leogtz en 9 Noviembre 2009, 16:28 pm

Código:

set /p name=&type 2.txt
rename 1.txt %name%.txt

Quita el & de tu código, es un caracter especial.


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: sr_corsario en 9 Noviembre 2009, 17:16 pm
Me siguen sin funcionar las posibles soluciones :'(

Gracias por la ayuda


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: <ИΘZIЭ(ŦB> en 9 Noviembre 2009, 18:36 pm
Acabo de notar que estaba usando algo sin necesidad. Con el ciclo FOR que te di no es necesario usar el comando TYPE o algún otro, pues con sólo colocar el nombre del archivo basta. Sería así:
Código:
For /f "useback tokens=*" %%R in ("Archivo2.txt") do (ren "Archivo1.txt" "%%R.txt")

Prueba ese que sí te dará resultado.


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: sr_corsario en 9 Noviembre 2009, 18:43 pm
Ouuu yessSS!!!


Muchas gracias ahora si que funciona!!!

Menos mal que tengo este foro para aprender un poquito!!!

GRAcias

Sr Corsario

Edit: Una cosita mas.
¿Como hago para asignar el contenido de archivo2.txt como variable?
Código:
For /f "useback tokens=*" %%R in ("Archivo2.txt") do (set contenido=%%R)

edit2:Upsss  sii!! :D funciona esto tb!!!

Gracias otra vez


Título: Re: Ayuda. Renombrar un archivo con el contenido de otro.
Publicado por: <ИΘZIЭ(ŦB> en 9 Noviembre 2009, 19:30 pm
Exacto! Aunque te sugiero que cierres entre comillas la declaración de la variable, porque si la línea tiene espacios el valor llegará hasta ahí y podría darte un error. Hazlo así:
Código:
set "contenido=%%R"
Eso te guardará el contenido completo pero sin las comillas. Es muy útil.Pruébalo.
Y haciendo alusión a tu comentario sobre el foro te puedo asegurar que si sigues frecuentándolo aprenderás muy rápido. Muchos de los miembros de aquí son de verdad muy prestos a ayudar, y gracias a ellos he podido aprender bastante en apenas meses. Así que no te pierdas.