elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 07:01  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  Copiar un archivo al interior de todas las carpetas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Copiar un archivo al interior de todas las carpetas  (Leído 2,370 veces)
GORSO

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Copiar un archivo al interior de todas las carpetas
« en: 27 Marzo 2009, 20:29 »

Hola, querria saber si me podríais ayudar a crear un código cmd o for para la siguiente funcion:

Tengo una carpeta llamada proyecto; dentro de esa tengo 2 carpetas llamadas a y b; dentro de la carpeta a, tengo un archivo llamado leeme.txt con atributos; dentro de la carpeta b tengo un monton de carpetas.
Ejemplo:

Proyecto
carpeta a            carpeta b
         leeme.txt            carpetas ba,ce, to


Pues lo que qioero es hacer un bat, que al ejecutarlo, copie el leeme.txt al interior de las carpetas del la carpeta b, osea, en el ejemplo, a las carpetas ba, ce, to etc...
Eso si, mediante variables o algo tipo: copy leeme.txt ..\b\todaslascarpetasqueempiezenpor a, b, c, d..... pero al dar con una carpeta que no existe, que no le cree, sno, me haria un churro de carpetas :s
Existe algo para hacer eso?
Gracias de antemano. ;-)


En línea
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #1 en: 27 Marzo 2009, 21:29 »

Mira no tengo ganas de ensayar batch pero creo que algo así serviría:

Código:
setlocal enableextensions
set directorio=c:\Proyecto
pushd %directorio%
for /r /d %%a in (.\b) do copy "%directorio%\a\leeme.txt" .\
popd
endlocal


« Última modificación: 28 Marzo 2009, 20:35 por Leo Gutierrez. » En línea
GORSO

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #2 en: 27 Marzo 2009, 22:41 »

No me funciona, solo pega el readme en la carpeta de proyecto nada mas.
Y el comando "c:\proye...." no lo puedo utilizar, ya que esta en un  dispositivo de almacenamiento. tendria que ser a raiz del sitio, tipo ".\" o "..\" :-(

Que le pasa a esto, que no me deja postear= lol
En línea
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #3 en: 27 Marzo 2009, 23:23 »

Código:
setlocal enableextensions
for /f %%a in (".") do set directorio=%%~fa\
pushd "%directorio%\b"
for /r /d %%a in (.) do copy /y "%directorio%\a\leeme.txt" "%%a"
popd
endlocal
pause

el bat debe encontrarse en la carpeta Proyecto.
En línea
GORSO

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #4 en: 28 Marzo 2009, 01:08 »

Wow, xD funciona!!! al menos al 50% xD
Copia el readme a todas las carpetas seeeee ;-) Graciasssss
Lo que pasa es que tiene el otro 50% :-\ que lo copia tambien a las subcarpetas, auque no ocupa mucho pero weno, pero si mantubiera los atributos seria ya la caña!!
He intentado cambiar el "copy /y" por "attrib +r" pero no se los cambia :-\

Si sabes como darle a los archivos estos atributos, o algo........

De todas maneras, gracias, es un buen trabajo, me quitaste mucho de encima, gracias man!!!
En línea
netoreto

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #5 en: 11 Julio 2011, 10:40 »

buenas!
sé que ha pasado tiempo, pero igual andáis por ahí...
¿se podría copiar ese txt sólo a  las carpetas que estén vacías?
por ahí he encontrado esto:

for /f «usebackq» %d in («dir /ad/b/s | sort /R») do rd «%d»

para eliminar todas las carpetas vacías, he intentado un "mix", pero nada de nada, es que no tengo ni idea

mil gracias
En línea
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #6 en: 11 Julio 2011, 11:55 »

hola, deberías haber creado un nuevo tema con tu pregunta, y no revivir uno del año 2009...

Si no tienes ni idea, vas a tener que aprender un poquito, pero no te asustes, es un poquito solo.

Mezcla vbs + batch.

Con un vbs descartas las carpetas que no están vacías, y luego el resultado, con un FOR en batch, copias el texto a las carpetas que están vacías.





"Comprobar_Carpetas_vacias.vbs"

 
Código
Dim objFileSystem, objTheFolder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTheFolder = objFileSystem.GetFolder(wscript.arguments(0))
 
If objTheFolder.size > 1 then
wscript.quit(0)
else
wscript.quit(1)
end if


Si la salida es 0, la carpeta está ocupada.
Si la salida es 1, la carpeta está vacía.



Una forma de usar el vbs para tu propósito sería así:



Código
@echo off

REM by PiToLoKo

REM Visita Foro.ElHacker.Net
 
:Carpetas vacias
For /F "Tokens=*" %%a in ('dir /B /S /A:D "LA_RUTA_DEL_DIRECTORIO"') do (
set folder=%%a
call :Comprobar carpeta)
 
 
 
:Comprobar carpeta
wscript "Comprobar_Carpetas_vacias.vbs" "%folder%"
 
If %errorlevel% EQU 0 (
goto:eof
) ELSE (
copy TUTEXTO.txt "%folder%\"
goto:eof
)


Saludos.
En línea

pa que
netoreto

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #7 en: 11 Julio 2011, 14:05 »

ayy
gracias por la prontísima respuesta,
y perdón por revivir algo tan antiguo, la verdad es que me resulta tan útil esto de rellenar directorios vacíos, que no entiendo cómo nadie ha hecho nada antes igual...
mañana lo pruebo, que se me acaba la hora del curro por hoy,

gracias otra vez,
N.
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: Copiar un archivo al interior de todas las carpetas
« Respuesta #8 en: 11 Julio 2011, 19:29 »

Si se quiere hacer en batch totalmente bastaría con entrar en cada directorio, contar los archivos y si son iguales a 0 que se copie ahí.
En línea

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

leorocko13@hotmail.com
https://github.com/leogtzr/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Perdí todas mis carpetas
Dudas Generales
dazet 4 470 Último mensaje 16 Noviembre 2006, 17:54
por dazet
Copiar un archivo en todas las subcarpetas
Scripting
Gorky 2 1,292 Último mensaje 8 Noviembre 2008, 16:36
por Gorky
Crear carpetas todas juntas
Programación Visual Basic
Angeldj27 8 1,286 Último mensaje 9 Febrero 2009, 20:47
por Angeldj27
¿Como copiar un archivo en todas las pc's de una determinada red?
Redes
Thekraken 2 942 Último mensaje 21 Julio 2009, 09:58
por andreselmejor
Copiar un archivo a todas las carpetas [Duda]
Scripting
caramel0rar0 2 353 Último mensaje 30 Enero 2012, 21:57
por caramel0rar0
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines