Ms-Dos - Ejecutar cmd en usb conectada

 
Vista:

Ejecutar cmd en usb conectada

Publicado por Freddy Arechiga (4 intervenciones) el 13/03/2012 21:48:33
Estoy haciendo un bat que restaure carpetas y borre los archivos de virus de cualquier usb que se conecte, esto es lo que tengo hasta ahora:

Attrib /d /s -r -h -s *.*
del *.lnk
del autorun.inf
del /q RECYCLER\*.*
rd RECYCLER

en el borrado de archivos me falta que elimine los .exe que se crean con los nombres de las carpetas, entonces necesito que busque si existe algun ejecutable con el nombre de una carpeta que lo borre.

Tambien necesito que el programa busque en que letra se puso la usb y ejecutar todo en esa ubicacion y cuando termine con esa letra cambie a la siguiente, esto por si llegan a conectarse varias usb a la vez.

Encontre un programa que ejecuta el archivo que estoy creando cada vez que conecto una usb, pero no seria posible hacer lo mismo todo desde aqui?

Gracias por todo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de A.H.H

Ejecutar cmd en usb conectada

Publicado por A.H.H (216 intervenciones) el 15/03/2012 00:24:39
Hola encontre un codigo que igual te sirve para algo, lo que hace es listar las unidades de tu equipo y decirte de que tipo son, como los pendrives que son unidades extraibles.
Este .bat usa el comando fsutil fsinfo drives y tambien fsutil fsinfo drivetype

1
2
3
4
5
6
7
8
9
@ECHO OFF
set "drlist="
for /f "tokens=*" %%A in ('fsutil fsinfo drives^|find "\"') do (
    set "dr=%%A"
    call set "drlist=%%drlist%% %%dr:~-3%%"
)
for %%A in (%drlist%) do fsutil fsinfo drivetype %%A
 
pause



si no tienes un pendrive insertado o una memoria el resultado de ejecutar este bat es el siguiente:

A:\ - Unidad extraíble
C:\ - Unidad fija
D:\ - Unidad fija
E:\ - Unidad de CD-ROM
F:\ - Unidad de CD-ROM
Presione una tecla para continuar . . .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Ejecutar cmd en usb conectada

Publicado por A.H.H (216 intervenciones) el 16/03/2012 20:05:26
Hola he mejorado el codigo anterior añadiendo una linea de codigo y ahora te listara solo las unidades extraibles conectadas.
NOTA:
Aparte de los usb conectados te lista el disco 3 y medio que tambien es extraible.

1
2
3
4
5
6
7
8
9
@ECHO OFF
set "drlist="
for /f "tokens=*" %%A in ('fsutil fsinfo drives^|find "\"') do (
    set "dr=%%A"
    call set "drlist=%%drlist%% %%dr:~-3%%")
 
for %%B in (%drlist%) do (fsutil fsinfo drivetype %%B|find "extra")
 
pause
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Ejecutar cmd en usb conectada

Publicado por A.H.H (216 intervenciones) el 17/03/2012 17:34:30
Hola ahora con el siguiente codigo abriras todos los pendrives o memorias extraibles que tengas conectadas SALTANDOSE el disco de 3 y medio el A:\ , porque si no hay nada en el, da error entonces hay que saltarse la letra A:\ en el for.
Vuelco las unidades que son extraibles a un archivo de texto, que despues de usarlo lo elimino sin mas.
Tu puedes hacer con el comando CD O CHDIR en vez del comando START que yo te pongo en el ejemplo para que se te ejecute tu codigo en cada pendrive.
De momento te pongo el codigo de ejemplo para que te explore todos los pendrives que conectes haz la prueba y conecta los que quieras............

1
2
3
4
5
6
7
8
9
10
11
@ECHO OFF
set "drlist="
for /f "tokens=*" %%A in ('fsutil fsinfo drives^|find "\"') do (
    set "dr=%%A"
    call set "drlist=%%drlist%% %%dr:~-3%%")
 
for %%B in (%drlist%) do (fsutil fsinfo drivetype %%B|findstr /i "extra">>listusb.txt)
 
for /f "tokens=1" %%C in (listusb.txt) do (if NOT "%%C" equ "A:\" START "" "%%C")
DEL "listusb.txt"
EXIT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Ejecutar cmd en usb conectada

Publicado por A.H.H (216 intervenciones) el 17/03/2012 21:19:16
HOLA YA LOGRE eliminar archivos de solo lectura en cualquier pendrive que conectes al ordenador.
Para lo que TU quieres deberias añadir a la etiqueta :eliminar del codigo de ejemplo que sigue TU codigo para eliminar.

en el siguiente ejemplo he metido en 2 pendrives un archivo con el atributo de solo lectura llamado "prueba.txt" y he conectado los 2 pendirves al ordenador.

El codigo lo que hace es:
primero- buscar las unidades extraibles y volcarlas a un fichero de texto en la carpeta temp.
segundo- Leer una por una las unidades que son extraibles y ejecutar lo que hay dentro de la
etiqueta :eliminar y borra el archivo listusb que esta en temp.

Nota: HAY QUE EMPEZAR SIEMPRE PARA ELIMINAR ALGO CON IF EXIST, ya que el for coge primero el directorio donde ejecutas el bat y como borres los *.lnk ejecutando en el escritorio el bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@ECHO OFF
set "drlist="
for /f "tokens=*" %%A in ('fsutil fsinfo drives^|find "\"') do (
    set "dr=%%A"
    call set "drlist=%%drlist%% %%dr:~-3%%")
 
for %%B in (%drlist%) do (fsutil fsinfo drivetype %%B|findstr /i "extra">>%temp%\listusb.txt)
 
for /f "tokens=1" %%C in (%temp%\listusb.txt) do (if NOT "%%C" equ "A:\" CD /D "%%C")^& CALL :eliminar
del "%temp%\listusb.txt"
 
:eliminar
if exist "prueba.txt" del /A:R "prueba.txt"
goto:EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar cmd en usb conectada

Publicado por Freddy Arechiga (4 intervenciones) el 20/03/2012 23:10:06
Muchas gracias por la ayuda, agregue mi codigo y lo ejecute en mi pc pero no hace ningun cambio en los archivos que tengo ya listos (aparentando ser el virus) de la usb conectada

asi es como quedo:

@ECHO OFF
set "drlist="
for /f "tokens=*" %%A in ('fsutil fsinfo drives^|find "\"') do (
set "dr=%%A"
call set "drlist=%%drlist%% %%dr:~-3%%")

for %%B in (%drlist%) do (fsutil fsinfo drivetype %%B|findstr /i "extra">>%temp%\listusb.txt)

for /f "tokens=1" %%C in (%temp%\listusb.txt) do (if NOT "%%C" equ "A:\" CD /D "%%C")^& CALL :eliminar
del "%temp%\listusb.txt"

:eliminar
Attrib /d /s -r -h -s *.*
del *.lnk
del autorun.inf
del /q RECYCLER\*.*
rd RECYCLER
if exist "prueba.txt" del /A:R "prueba.txt"
goto:EOF

En estos dias segui buscando y deje el codigo de esta manera:

for %%a in (E F G H I J K L M N O P Q R S T U V W X Y Z) do (
%%a:
Attrib /d /s -r -h -s *.*
del *.lnk
del autorun.inf
del /q RECYCLER\*.*
rd RECYCLER
)

El problema esta en que tengo un lector de memorias conectado y al ejecutar el codigo en sus unidades me aparece en otra ventana un mensaje de "cmd.exe No hay disco", como podria evitar que el codigo se ejecute en las unidades vacias?

una vez mas gracias, ya sea que se pueda con tu codigo o el que estuve haciendo, sinceramente se muy poco de programacion asi que no puedo modificar el codigo que me has facilitado, pero si pudieras dejarmelo listo para ejecutar cualquiera de los dos te lo agradeceria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Ejecutar cmd en usb conectada

Publicado por A.H.H (216 intervenciones) el 25/03/2012 19:47:55
Hola prueba asi :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@ECHO OFF
set "drlist="
for /f "tokens=*" %%A in ('fsutil fsinfo drives^|find "\"') do (
    set "dr=%%A"
    call set "drlist=%%drlist%% %%dr:~-3%%")
 
for %%B in (%drlist%) do (fsutil fsinfo drivetype %%B|findstr /i "extra">>%temp%\listusb.txt)
 
for /f "tokens=1" %%C in (%temp%\listusb.txt) do (if NOT "%%C" equ "A:\" CD /D "%%C")^& CALL :eliminar
del "%temp%\listusb.txt"
 
pause
 
:eliminar
 
if exist "autorun.inf" attrib -R -A -S -H "autorun.inf" /S /D
del /F /S "autorun.inf"
 
if exist "RECYCLER" attrib -R -A -S -H "RECYCLER" /S /D
RD /S /Q "RECYCLER"
 
 
goto:EOF


Comentarte que en la linea de codigo donde dice:
1
if NOT "%%C" equ "A:\"

compara si existe disquetera de 3 y medio y la hace saltar para que no de error.
Si tu tienes una memoria fija en el ordenador deberias poner la letra hay para hacerla saltar.
No se si me has entendido.

salu2
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar cmd en usb conectada

Publicado por Freddy Arechiga (4 intervenciones) el 26/03/2012 21:33:34
Ejecute el codigo tal cual me lo diste y sigue sin eliminar lor archivos, entonces puse una pausa antes de que eliminara el archivo listusb.txt de la carpeta temporal y vi que esta vacio, al parecer el codigo no esta introduciendo los valores de las unidades al archivo para luego comparar cuales son los extraibles. Podrias ayudarme con eso?

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar cmd en usb conectada

Publicado por Freddy Arechiga (4 intervenciones) el 28/03/2012 21:23:35
Muchas gracias por la ayuda, al final asi deje mi codigo, lo pongo por si alguien lo llega a necesitar:

@echo off
setlocal ENABLEDELAYEDEXPANSION

for %%a in (E F G H I J K L M N O P Q R S T U V W X Y Z) do (
DIR %%a:\ 2>&1| FIND "%%a:" > NUL
IF ERRORLEVEL 1 ECHO Drive %%a: is not ready
IF NOT ERRORLEVEL 1 (
%%a:
Attrib /d /s -r -h -s *.*
del *.lnk
del autorun.inf
del /q RECYCLER\*.*
rd RECYCLER
)
)

Set dirA=%1
Set dirB=%2

dir /B /O *.exe %dirA% >EXE.txt
dir /B /O /ad %dirB% >DIR.txt

findstr /B /G:DIR.txt EXE.txt >>VIRUS.txt

for /f "delims=" %%i in (VIRUS.txt) do del "%%i"

del EXE.txt
del DIR.txt
del VIRUS.txt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar cmd en usb conectada

Publicado por d4it (1 intervención) el 13/05/2016 22:00:23
Hola que tal. En este articulo he encontrado lo que andaba buscando. Pero ahora quiero agregar una linea que indique "No existe unidad USB" si no esta ninguna unidad USB conectada.
no se si logre explicarme, espero puedan seguir ayudandome.
muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Ejecutar cmd en usb conectada

Publicado por A.H.H (216 intervenciones) el 29/03/2012 20:50:43
Hola Freddy Arechiga

......No esta nada mal.............me falto el if errorlevel........................
No esta nada mal............................................
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ejecutar cmd en usb conectada

Publicado por DonRicky (1 intervención) el 18/11/2013 14:04:26
Estuve leyendo con atencion este post y aunque todavia me cuesta un poquito entenderlo porque no tengo experiencia les quiero pedir una ayudita: necesito hacer este mismo proceso en un batch pero que solamente se limite a indicarme en que unidad (D: E: F: etc) está conectado el pendrive, y ahi termine. Aclaro que el pendrive puede ser absolutamente cualquiera, por lo que no puedo preguntar por el label ni el numero ni ningun archivo que contenga, es decir debe funcionar para cualquier pendrive que se inserte en cualquiera de los puertos usb que tenga la maquina.

Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar