elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Solucionado] Renombrar un archivo con el contenido de otro.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Renombrar un archivo con el contenido de otro.  (Leído 7,193 veces)
sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
[Solucionado] Renombrar un archivo con el contenido de otro.
« 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


« Última modificación: 9 Noviembre 2009, 18:44 pm por sr_corsario » En línea

<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #1 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.


En línea

sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #2 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?
« Última modificación: 9 Noviembre 2009, 15:06 pm por sr_corsario » En línea

<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #3 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.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #4 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.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #5 en: 9 Noviembre 2009, 17:16 pm »

Me siguen sin funcionar las posibles soluciones :'(

Gracias por la ayuda
En línea

<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #6 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.
En línea

sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #7 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
« Última modificación: 9 Noviembre 2009, 18:57 pm por sr_corsario » En línea

<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Ayuda. Renombrar un archivo con el contenido de otro.
« Respuesta #8 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines